Bạn đang xem tài liệu về Apigee Edge.
Chuyển đến
Tài liệu về Apigee X. thông tin
Nội dung
- Xác thực và uỷ quyền thư đến: Xác thực Xác nhận SAML
chính sách
Loại chính sách SAML cho phép các proxy API xác thực nội dung xác nhận SAML được đính kèm các yêu cầu SOAP gửi đến. Chính sách SAML xác thực thư đến có chứa Xác nhận SAML có chữ ký số, từ chối nếu xác nhận không hợp lệ và đặt các biến cho phép các chính sách bổ sung hoặc chính các dịch vụ phụ trợ để xác thực thông tin trong câu nhận định. - Tạo mã thông báo đi: Tạo chính sách Xác nhận SAML
Loại chính sách SAML cho phép các proxy API đính kèm câu nhận định SAML vào yêu cầu XML gửi đi. Sau đó, bạn có thể sử dụng những câu nhận định đó để cho phép các dịch vụ phụ trợ tăng cường bảo mật xử lý để xác thực và uỷ quyền.
Mẫu
Tạo thông tin xác nhận SAML
<GenerateSAMLAssertion name="SAML" ignoreContentType="false"> <CanonicalizationAlgorithm /> <Issuer ref="reference">Issuer name</Issuer> <KeyStore> <Name ref="reference">keystorename</Name> <Alias ref="reference">alias</Alias> </KeyStore> <OutputVariable> <FlowVariable>assertion.content</FlowVariable> <Message name="request"> <Namespaces> <Namespace prefix="test">http://www.example.com/test</Namespace> </Namespaces> <XPath>/envelope/header</XPath> </Message> </OutputVariable> <SignatureAlgorithm /> <Subject ref="reference">Subject name</Subject> <Template ignoreUnresolvedVariables="false"> <!-- A lot of XML goes here, in CDATA, with {} around each variable --> </Template> </GenerateSAMLAssertion>
Tạo thông tin xác nhận SAML
Xác thực nội dung xác nhận SAML
<ValidateSAMLAssertion name="SAML" ignoreContentType="false"> <Source name="request"> <Namespaces> <Namespace prefix='soap'>http://schemas.xmlsoap.org/soap/envelope/</Namespace> <Namespace prefix='wsse'>http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd</Namespace> <Namespace prefix='saml'>urn:oasis:names:tc:SAML:2.0:assertion</Namespace> </Namespaces> <AssertionXPath>/soap:Envelope/soap:Header/wsse:Security/saml:Assertion</AssertionXPath> <SignedElementXPath>/soap:Envelope/soap:Header/wsse:Security/saml:Assertion</SignedElementXPath> </Source> <TrustStore>TrustStoreName</TrustStore> <RemoveAssertion>false</RemoveAssertion> </ValidateSAMLAssertion>
Xác thực thông tin xác nhận SAML
Tham chiếu phần tử
Tạo nội dung xác nhận SAML
Tên trường | Mô tả | ||
---|---|---|---|
name thuộc tính |
Tên của phiên bản chính sách. Tên phải là duy nhất trong
tổ chức. Bạn chỉ có thể sử dụng các ký tự trong tên này: A-Z0-9._\-$
% . Tuy nhiên, giao diện người dùng Quản lý có các quy tắc hạn chế bổ sung, chẳng hạn như
tự động xoá các ký tự không phải là chữ và số. |
||
ignoreContentType thuộc tính |
Giá trị boolean có thể đặt thành true hoặc false . Theo mặc định,
câu nhận định sẽ không được tạo nếu loại nội dung của thông báo không phải là tệp XML
Loại nội dung. Nếu bạn đặt thuộc tính này thành true thì thông báo sẽ được coi là XML
bất kể loại Nội dung. |
||
Issuer |
Giá trị nhận dạng riêng biệt của nhà cung cấp danh tính. Nếu
ref không bắt buộc
hiện có, thì giá trị của Công ty phát hành sẽ được chỉ định trong thời gian chạy dựa trên
biến được chỉ định. Nếu không có thuộc tính không bắt buộc ref , thì thuộc tính
giá trị của Tổ chức phát hành.
|
||
KeyStore |
Tên của KeyStore chứa khoá riêng tư và bí danh của khoá riêng tư
dùng để ký kỹ thuật số xác nhận SAML.
|
||
OutputVariable |
|||
FlowVariable |
|||
Message |
Mục tiêu của chính sách. Các giá trị hợp lệ là message , request ,
và response . Khi bạn đặt thành message , chính sách này sẽ có điều kiện
truy xuất đối tượng thông báo dựa trên điểm đính kèm của chính sách. Khi được đính kèm với
Luồng yêu cầu, chính sách sẽ phân giải message thành yêu cầu và khi được đính kèm vào
Luồng phản hồi, thì chính sách sẽ phân giải message thành phản hồi. |
||
XPath |
Một biểu thức vai trò cho biết phần tử trên tài liệu XML đi chính sách sẽ đính kèm nội dung xác nhận SAML. | ||
SignatureAlgorithm |
SHA1 hoặc SHA256 | ||
Subject |
Giá trị nhận dạng duy nhất của chủ thể trong nội dung xác nhận SAML. Nếu giá trị không bắt buộc
Đã có thuộc tính
ref , khi đó giá trị của Tiêu đề sẽ được gán tại
dựa trên biến được chỉ định. Nếu thuộc tính không bắt buộc ref là
hiện tại thì giá trị của Tiêu đề sẽ được sử dụng.
|
||
Template |
Nếu có, thì câu nhận định sẽ được tạo bằng cách chạy mẫu này, thay thế
mọi thứ đều được ký hiệu là
{} với biến tương ứng, sau đó theo số
ký kết quả. Mẫu này được xử lý theo các quy tắc chính sách của AttributionMessage.
Xem phần Giao
Chính sách về tin nhắn.
|
Xác thực xác nhận SAML
Tên trường | Mô tả |
---|---|
name thuộc tính |
Tên của phiên bản chính sách. Tên phải là duy nhất trong tổ chức.
Bạn chỉ có thể sử dụng các ký tự trong tên này:
A-Z0-9._\-$ % .
Tuy nhiên, giao diện người dùng Quản lý thực thi thêm các hạn chế, chẳng hạn như tự động
xoá các ký tự không phải là chữ và số.
|
ignoreContentType thuộc tính |
Giá trị boolean có thể đặt thành true hoặc false . Theo mặc định,
câu nhận định sẽ không được tạo nếu loại nội dung của thông báo không phải là tệp XML
Loại nội dung. Nếu bạn đặt thuộc tính này thành true thì thông báo sẽ được coi là XML
bất kể loại Nội dung. |
Source |
Mục tiêu của chính sách. Các giá trị hợp lệ là message , request ,
và response . Khi bạn đặt thành message , chính sách này sẽ có điều kiện
truy xuất đối tượng thông báo dựa trên điểm đính kèm của chính sách. Khi được đính kèm với
Luồng yêu cầu, chính sách sẽ phân giải message thành yêu cầu và khi được đính kèm vào
Luồng phản hồi, thì chính sách sẽ phân giải message thành phản hồi. |
XPath |
Không dùng nữa. Con của
Source . Sử dụng
AssertionXPath và SignedElementXPath .
|
AssertionXPath |
Con của
Source . Một biểu thức vai trò cho biết phần tử trên
tài liệu XML gửi đến mà chính sách có thể trích xuất nội dung xác nhận SAML.
|
SignedElementXPath |
Con của
Source . Một biểu thức vai trò cho biết phần tử trên
tài liệu XML bên trong mà chính sách có thể trích xuất phần tử đã ký. Chiến dịch này
có thể khác hoặc giống với diễn ra trong AssertionXPath .
|
TrustStore |
Tên của TrustStore chứa các chứng chỉ X.509 đáng tin cậy dùng để xác thực
chữ ký số trên thông tin xác nhận SAML.
|
RemoveAssertion |
Giá trị boolean có thể đặt thành
true hoặc false . Thời gian
true , thông tin xác nhận SAML sẽ bị xoá khỏi thông báo yêu cầu trước
tin nhắn đó sẽ được chuyển tiếp đến dịch vụ phụ trợ.
|
Lưu ý về cách sử dụng
Thông số kỹ thuật của Ngôn ngữ đánh dấu xác nhận bảo mật (SAML) xác định các định dạng và giao thức cho phép các ứng dụng trao đổi thông tin ở định dạng XML để xác thực và uỷ quyền.
"Xác nhận bảo mật" là mã thông báo đáng tin cậy mô tả một thuộc tính của ứng dụng, người dùng ứng dụng hoặc một số người tham gia khác trong giao dịch. Xác nhận bảo mật do 2 bên quản lý và sử dụng loại thực thể:
- Nhà cung cấp danh tính: Tạo xác nhận bảo mật thay mặt cho người tham gia
- Nhà cung cấp dịch vụ: Xác thực các khẳng định bảo mật thông qua mối quan hệ đáng tin cậy với danh tính các nhà cung cấp
Nền tảng API có thể đóng vai trò là nhà cung cấp danh tính và nhà cung cấp dịch vụ. Thẻ này đóng vai trò như một nhà cung cấp danh tính bằng cách tạo các câu nhận định và đính kèm chúng để yêu cầu thông báo, khiến những câu nhận định đó câu nhận định có sẵn để xử lý bằng các dịch vụ phụ trợ. Hoạt động với vai trò là một nhà cung cấp dịch vụ bằng cách xác thực câu nhận định trong thông báo yêu cầu đến.
Loại chính sách SAML hỗ trợ xác nhận SAML phù hợp với phiên bản 2.0 của Lõi SAML Thông số kỹ thuật và Phiên bản 1.0 của thông số kỹ thuật Cấu hình mã thông báo SAML của WS-Security.
Tạo nội dung xác nhận SAML
Xử lý chính sách:
- Nếu thông báo không phải là XML và IgnoreContentType không được đặt thành
true
, thì nêu lỗi. - Nếu "Mẫu" được đặt, sau đó xử lý mẫu theo mô tả cho chính sách AttributionMessage. Nếu thiếu bất kỳ biến nào và chưa đặt IgnoreUnresolvedVariables, hãy báo lỗi.
- Nếu "Mẫu" chưa được đặt, thì hãy tạo câu nhận định bao gồm các giá trị của Tham số của Chủ thể và Tổ chức phát hành hoặc thông số tham chiếu của chúng.
- Ký xác nhận bằng khoá đã chỉ định.
- Thêm khẳng định vào thông báo tại NETWORK được chỉ định.
Xác thực xác nhận SAML
Xử lý chính sách:
- Chính sách này kiểm tra thư đến để xác minh rằng loại nội dung đa phương tiện của yêu cầu là XML, bằng cách
kiểm tra xem loại nội dung có khớp với định dạng
text/(.*+)?xml
hoặcapplication/(.*+)?xml
Nếu loại phương tiện không phải là XML và Nếu bạn không đặt<IgnoreContentType>
, chính sách sẽ báo lỗi. - Chính sách này sẽ phân tích cú pháp tệp XML. Nếu phân tích cú pháp không thành công thì lỗi sẽ xảy ra.
- Chính sách này sẽ trích xuất phần tử đã ký và nội dung xác nhận quyền sở hữu theo Wi-Fi tương ứng
được chỉ định (
<SignedElementXPath>
và<AssertionXPath>
). Nếu một trong hai đường dẫn này không trả về phần tử, thì chính sách sẽ gây ra lỗi. - Chính sách này sẽ xác minh rằng Xác nhận giống với phần tử đã ký, hoặc là phần tử con của phần tử đã ký. Nếu điều này không đúng thì chính sách sẽ báo cáo lỗi.
- Nếu một trong hai thuộc tính
<NotBefore>
hoặc<NotOnOrAfter>
có xuất hiện trong câu nhận định, thì chính sách này sẽ kiểm tra dấu thời gian hiện tại so với các giá trị này, như mô tả trong phần 2.5.1 Core SAML. - Chính sách này sẽ áp dụng mọi quy tắc bổ sung để xử lý "Điều kiện" như được mô tả trong phần SAML Core 2.5.1.1.
- Chính sách này sẽ xác thực chữ ký số XML bằng các giá trị của
<TrustStore>
và<ValidateSigner>
như mô tả ở trên. Nếu quá trình xác thực không thành công, thì chính sách sẽ báo lỗi.
Khi chính sách hoàn tất mà không gây ra lỗi, nhà phát triển proxy có thể chắc chắn trong số sau:
- Chữ ký số trong nội dung nhận định là hợp lệ và do một CA đáng tin cậy ký
- Xác nhận có hiệu lực trong khoảng thời gian hiện tại
- Chủ thể và người đưa ra câu nhận định sẽ được trích xuất và thiết lập trong các biến luồng. Đó là trách nhiệm của các chính sách khác về việc sử dụng các giá trị này để xác thực bổ sung, chẳng hạn như kiểm tra xem tên chủ đề có hợp lệ không hoặc chuyển tên đó đến một hệ thống mục tiêu để xác thực.
Các chính sách khác (chẳng hạn như ExtractVariables) có thể dùng để phân tích cú pháp XML thô của câu nhận định để xác thực phức tạp hơn.
Biến luồng
Có nhiều thông tin có thể được chỉ định trong nội dung xác nhận SAML. SAML Bản thân xác nhận là XML có thể được phân tích cú pháp bằng chính sách ExtractVariables và để triển khai các quy trình xác thực phức tạp hơn.
Biến | Mô tả |
---|---|
saml.id |
Mã xác nhận SAML |
saml.issuer |
"Công ty phát hành" của câu nhận định, được chuyển đổi từ loại XML gốc thành chuỗi |
saml.subject |
"Chủ đề" của câu nhận định, được chuyển đổi từ loại XML gốc thành chuỗi |
saml.valid |
Trả về true hoặc false dựa trên kết quả kiểm tra tính hợp lệ |
saml.issueInstant |
IssueInstant |
saml.subjectFormat |
Định dạng tiêu đề |
saml.scmethod |
Phương thức xác nhận chủ thể |
saml.scdaddress |
Địa chỉ dữ liệu xác nhận chủ thể |
saml.scdinresponse |
Dữ liệu xác nhận chủ thể trong câu trả lời |
saml.scdrcpt |
Người nhận dữ liệu xác nhận chủ thể |
saml.authnSnooa |
Phiên AuthnStatement NotOnOrSau |
saml.authnContextClassRef |
AuthnStatement AuthnContextClassRef |
saml.authnInstant |
AuthnStatement AuthInstant |
saml.authnSessionIndex |
Chỉ mục phiên AuthnStatement |
Tham chiếu lỗi
Phần này mô tả các mã lỗi và thông báo lỗi được trả về và các biến lỗi do Edge đặt khi chính sách này kích hoạt lỗi. Thông tin này rất quan trọng nếu bạn đang phát triển các quy tắc lỗi để xử lý lỗi. Để tìm hiểu thêm, hãy xem bài viết Những điều bạn cần biết về lỗi chính sách và Xử lý lỗi.
Lỗi triển khai
Những lỗi này có thể xảy ra khi bạn triển khai proxy có chứa chính sách này.
Tên lỗi | Nguyên nhân | Khắc phục |
---|---|---|
SourceNotConfigured |
Một hoặc nhiều thành phần sau đây trong quy trình Xác thực SAML
chính sách không được xác định hoặc bị trống: <Source> , <XPath> ,
<Namespaces> , <Namespace> .
|
build |
TrustStoreNotConfigured |
Nếu phần tử <TrustStore> trống hoặc không được chỉ định trong
Xác thực chính sách SAMLAssertion, thì việc triển khai proxy API sẽ không thành công.
Bạn phải có một Cửa hàng tin cậy hợp lệ.
|
build |
NullKeyStoreAlias |
Nếu phần tử con <Alias> bị trống hoặc không được chỉ định trong <Keystore>
thành phần của Chính sách tạo xác nhận SAML, sau đó là việc triển khai API
proxy. Bạn phải có email đại diện hợp lệ cho Kho khoá.
|
build |
NullKeyStore |
Nếu phần tử con <Name> bị trống hoặc không được chỉ định trong <Keystore>
phần tử của chính sách Tạo SAMLAssertion, sau đó là triển khai API
proxy. Bạn phải nhập tên Kho khoá hợp lệ.
|
build |
NullIssuer |
Nếu phần tử <Issuer> bị trống hoặc không được chỉ định trong mục Tạo SAML
Xác nhận chính sách, thì việc triển khai proxy API sẽ không thành công. Đáp
bạn phải nhập giá trị <Issuer> hợp lệ.
|
build |
Biến lỗi
Các biến này được đặt khi xảy ra lỗi thời gian chạy. Để biết thêm thông tin, hãy xem bài viết Những điều bạn cần biết về lỗi chính sách.
Biến | Trong đó | Ví dụ: |
---|---|---|
fault.name="fault_name" |
fault_name là tên của lỗi. Tên lỗi là phần cuối cùng của mã lỗi. | fault.name = "InvalidMediaTpe" |
GenerateSAMLAssertion.failed |
Đối với cấu hình chính sách xác nhận SAML nhằm xác thực, tiền tố lỗi là
ValidateSAMLAssertion . |
GenerateSAMLAssertion.failed = true |
Ví dụ về phản hồi khi gặp lỗi
{ "fault": { "faultstring": "GenerateSAMLAssertion[GenSAMLAssert]: Invalid media type", "detail": { "errorcode": "steps.saml.generate.InvalidMediaTpe" } } }
Ví dụ về quy tắc lỗi
<FaultRules> <FaultRule name="invalid_saml_rule"> <Step> <Name>invalid-saml</Name> </Step> <Condition>(GenerateSAMLAssertion.failed = "true")</Condition> </FaultRule> </FaultRules>
Chủ đề có liên quan
Trích xuất biến: Trích xuất biến chính sách của Google