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

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');
	}
};

例: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);
};

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」です。

もっと詳しく

I