SAMLアサーションをカスタマイズする

SAMLアサーションと、SAMLおよびWS-Fedのプロトコルパラメーターはカスタマイズできます。

IDプロバイダーとしてのAuth0

Dashboardでアドオンを構成するか、ルールを使用して、Auth0がIDプロバイダーとして機能する際のSAMLアサーションをカスタマイズします。

Dashboardの使用

  1. [Dashboard]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動し、アプリケーションの名前を選択して表示します。

  2. [Addons(アドオン)]タブを選択します。

  3. [SAML2 Web App(SAML2 Webアプリ)]を有効にして設定とオプションを表示します。

    Dashboard アプリケーション アプリケーションアドオンタブ SAML2 Webアプリ 設定タブ

  4. [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 ブール値 passthroughClaimsWithNoMappingtrueで、これが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/nameidentifieruser_idからマッピング)、http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddressemailからマッピング)、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:stringxs:booleanxs:double 、およびxs:anyTypeです。falseに設定すると、すべてのxs:typexs:anyTypeになります。
includeAttributeNameFormat ブール値 デフォルトはtrueです。trueに設定すると、属性名を基にNameFormatを推測します。NameFormatの値は、urn:oasis:names:tc:SAML:2.0:attrname-format:uriurn: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を使用しますが、bindingurn: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」です。

もっと詳しく