SAMLアサーションをカスタマイズする
SAMLアサーションと、SAMLおよびWS-Fedのプロトコルパラメーターはカスタマイズできます。
IDプロバイダーとしてのAuth0
Dashboardでアドオンを構成するか、ルールを使用して、Auth0がIDプロバイダーとして機能する際のSAMLアサーションをカスタマイズします。
Dashboardの使用
[Dashboard]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動し、アプリケーションの名前を選択して表示します。
[Addons(アドオン)]タブを選択します。
[SAML2 Web App(SAML2 Webアプリ)]を有効にして設定とオプションを表示します。
[Settings(設定)]タブでは、以下のような何種類かのカスタマイズができます。
SAML要求のデフォルトの発行者以外のオーディエンスを指定する
受信者を指定する
プロファイル属性を特定の属性ステートメントにマッピングする
署名またはダイジェストアルゴリズムを変更する
アサーションのみに署名するのか、応答全体に署名するのかを指定する
アクションを使用する
アクションを使用すると、SAML応答にさらに広範囲または動的なカスタマイズを追加できます。アクションで行われたカスタマイズは、Dashboardの[Application Addons(アプリケーションアドオン)]ビューを使ったカスタマイズをオーバーライドします。
デフォルトのSAML属性をオーバーライドするか、新しい属性を追加するためには、api.samlResponse
オブジェクトを使用します。
例:SAMLトークンのライフタイムを変更し、UPNをNameIDとして使用する
exports.onExecutePostLogin = async (event, api) => {
api.samlResponse.setLifetimeInSeconds(36000);
if (event.user.upn) {
api.samlResponse.setAttribute('http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier', 'upn');
}
};
Was this helpful?
例:user_metadata属性をアサーションに含む
exports.onExecutePostLogin = (event, api) => {
event.user.user_metadata = event.user.user_metadata || {};
event.user.user_metadata.color = 'purple';
api.samlResponse.setAttribute('http://schemas.xmlsoap.org/ws/2005/05/identity/claims/color', event.user.user_metadata.color);
};
Was this helpful?
SAMLアサーション属性
以下はSAMLアサーションのカスタマイズ属性のリストです。
属性 | 種類 | 説明 |
---|---|---|
audience |
文字列 | SAMLアサーションのオーディエンスです。デフォルトは、SAMLRequestの発行者です。 |
recipient |
文字列 | SAMLアサーション(SubjectConfirmationData )の受信者です。デフォルトは、SAMLRequestのAssertionConsumerUrl 、またはSAMLRequestが送られなかった場合はCallback URLです。 |
issuer |
文字列 | SAML IDプロバイダーの一意の識別子で、URLとして形式化されます。 |
mappings |
オブジェクト | Auth0プロファイルとSAMLアサーションの出力属性のマッピングです。デフォルトのマッピングについては、上記の説明を参照してください。 |
createUpnClaim |
ブール値 | UPNクレームを作成するかどうかを指定します。デフォルトはtrue です。 |
passthroughClaimsWithNoMapping |
ブール値 | true の場合(デフォルト)、共通プロファイルにマッピングされていない各クレームは、Auth0がそれらを通じて出力アサーションに渡します。false の場合、それらのクレームはマッピングされません。 |
mapUnknownClaimsAsIs |
ブール値 | passthroughClaimsWithNoMapping がtrue で、これがfalse の場合(デフォルト)、共通プロファイルにマッピングされていない各クレームには、Auth0がプレフィックス「http://schema.auth0.com 」を追加します。true の場合は、クレームをそのままパススルーします。 |
mapIdentities |
ブール値 | true の場合(デフォルト)、これによりプロバイダー(Google、ADFS、ADなど)や、利用可能な場合アクセストークンなどの追加情報がトークンに付け足されます。 |
signatureAlgorithm |
文字列 | SAMLアサーションまたは応答の署名に使用する署名アルゴリズムです。デフォルトはrsa-sha1 です。 |
digestAlgorithm |
文字列 | SAMLアサーションまたは応答のダイジェストを演算するダイジェストアルゴリズムです。デフォルトはsha1 です。 |
destination |
オブジェクト | SAML応答の送信先です。指定されていない場合、SAMLRequest のAssertionConsumerUrl になり、SAMLRequestがない場合は、Callback URLになります。 |
lifetimeInSeconds |
整数値 | トークンの有効期限です。デフォルトは、3600 秒(1時間)です。 |
signResponse |
ブール値 | SAML応答が署名されるべきかを指定します。デフォルトでは、SAMLアサーションは署名されますが、SAML応答は署名されません。true の場合、SAMLアサーションではなく、SAML応答が署名されます。 |
nameIdentifierFormat |
文字列 | デフォルトは、urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified です。 |
nameIdentifierProbes |
配列 | Auth0はこの配列の各属性を順番に試します。その1つが値を持つ場合は、それをSubject/NameID に使用します。順番:http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier (user_id からマッピング)、http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress (email からマッピング)、http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name`(名前からマッピング) |
authnContextClassRef |
文字列 | デフォルトは、urn:oasis:names:tc:SAML:2.0:ac:classes:unspecified です。 |
typedAttributes |
ブール値 | デフォルトはtrue です。true に設定すると、要素のxs:type を推測します。種類はxs:string 、xs:boolean 、xs:double 、およびxs:anyType です。false に設定すると、すべてのxs:type がxs:anyType になります。 |
includeAttributeNameFormat |
ブール値 | デフォルトはtrue です。true に設定すると、属性名を基にNameFormat を推測します。NameFormat の値は、urn:oasis:names:tc:SAML:2.0:attrname-format:uri 、urn:oasis:names:tc:SAML:2.0:attrname-format:basic 、およびurn:oasis:names:tc:SAML:2.0:attrname-format:unspecified です。false に設定すると、NameFormat 属性はアサーションに設定されません。 |
logout |
オブジェクト | SAMLログアウトを制御します。2つのプロパティーを含むことができます。callback (文字列)には、サービスプロバイダー(クライアントアプリケーション)のシングルログアウトサービスURLが含まれ、Auth0はそこにログアウトの要求と応答を送信します。slo_enabled (ブール値)は、Auth0がサービスプロバイダーにセッション終了を通知するかを指定します。デフォルト値はtrue (プロバイダーに通知する)です。 |
binding |
文字列 | SAMLログアウト応答に使用されるプロトコルバインディングを任意に示します。Auth0はデフォルトでHTTP-POST を使用しますが、binding をurn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect に設定すると、HTTP-Redirect に変更することができます。 |
signingCert |
文字列 | SAML要求の検証に使用される公開鍵証明書を任意に示します。設定された場合、SAML要求の署名が必要になります。サンプルの値は、「-----BEGIN CERTIFICATE-----\nMIIC8jCCAdqgAwIBAgIJObB6jmhG0QIEMA0GCSqGSIb3DQEBBQUAMCAxHjAcBgNV\n[..all the other lines..]-----END CERTIFICATE-----\n 」です。 |