動的なクライアント登録を有効にする
Auth0は オープンな動的登録 をサポートしています。つまり、この機能を有効にすると、 誰でも トークンなしでテナント内にアプリケーションを作成できるようになります。
enable_dynamic_client_registration
フラグをtrue
に設定する必要があります。
このためには、[Dashboard]>[Settings(設定)]>[Advanced(詳細)]の順に移動し、[OIDC Dynamic Application Registration(OIDCの動的なアプリケーション登録)] を有効にします。
または、 /Tenant/patch_settings
エンドポイントを使用してこのフラグを更新することができます。
update:tenant_settings
スコープを含む有効なトークンで、API2_ACCESS_TOKEN
を更新する必要があります。詳細については、「Management APIのアクセストークン」をお読みください。
動的なクライアント登録を使用する
このセクションでは、どのようにアプリケーションを動的に登録し、設定することができるかをご紹介します。アプリケーションの登録を
Auth0でアプリケーションを動的に登録するには、HTTPPOST
メッセージをアプリケーション登録エンドポイントhttps://{yourDomain}/oidc/register
に送信する必要があります。Auth0は Open Dynamic Registration(オープンな動的登録) に対応しており、エンドポイントはアクセストークンなしに登録要求を受け入れます。
「My Dynamic application
」という名前で、コールバックURLがhttps://application.example.com/callback
とhttps://application.example.com/callback2
に指定されているアプリケーションを作成するには、以下のスニペットを使用します。
- client_name :作成するDynamic Application(動的アプリケーション)の名前
- redirect_uris (必須):Auth0が認証フローの終了時に呼び出すのに有効であるとみなすURLの配列
token_endpoint_auth_method
の値を設定することができます。これは、none
またはclient_secret_post
(デフォルト値)のいずれかで指定します。SPAを作成する場合、要求のペイロードでtoken_endpoint_auth_method: none
を使用します。
応答には基本的なアプリケーション情報が含まれます。
- client_id :一意のクライアント識別子。アプリケーションでAuth0を使用するよう構成するときに使用するIDです。これはシステムで生成され、変更することはできません。
- client_secret :英数字の64ビットのクライアントシークレット。Authentication API
/token
への認証と、IDトークンの検証にアプリケーションで使用される値です。 - client_secret_expires_at :
client_secret
が期限切れする時刻。Auth0では、この値は常にゼロ(0
)で、アプリケーションが期限切れになることはありません。
アプリケーションを構成する
クライアントIDとシークレットが揃ったら、Auth0でユーザー認証を行うためにアプリケーションを構成することができます。 簡単なサンプルを通じて、暗黙的フローを使用してクライアント側のWebアプリからAPIを呼び出す方法をご紹介します。 まず、ユーザーを認可URLに送信するようにアプリケーションを構成する必要があります。- (任意):アプリケーションがユーザーに代わってアクセスを要求しているターゲットAPI。APIアクセスが必要な場合、このパラメーターを設定します。
- scope(任意):認可を要求したいスコープ。スペースで区切る必要があります。ユーザーの標準OIDCスコープ(
profile
やemail
など)、名前空間の形式に準拠しなければならないカスタムクレーム、またはターゲットAPIでサポートされているスコープ(read:contacts
など)を要求することができます。APIアクセスが必要な場合、このパラメーターを設定します。詳細については、「APIスコープ」をお読みください。 - response_type:応答タイプ。暗黙的な付与の場合、
token
またはid_token token
を使用することができます。これで、フローの終了時に受け取るトークンの種類が指定されます。token
を使用してアクセストークンのみを取得するか、id_token token
を使用してIDトークンとアクセストークンの両方を取得します。 - client_id:アプリケーションのクライアントID
- redirect_uri:認可がユーザーによって付与された後、認可サーバー(Auth0)がユーザーエージェント(ブラウザー)をリダイレクトするURL。アクセストークン(および任意でIDトークン)は、このURLのハッシュフラグメントで使用することができます。このURLは、アプリケーションの [Application Settings(アプリケーション設定)] で有効なコールバックURLとして指定される必要があります。
- state:アプリケーションにリダイレクトするときに認可サーバーに含まれる初期要求にアプリケーションが追加する不透明な値。この値は、CSRF攻撃を防ぐためににアプリケーションで使用される必要があります。
- :Auth0からのIDトークンの要求に含まれる文字列値で、トークンのリプレイ攻撃を防ぐのに使用されます。
response_type=id_token token
に必要です。
Authorization
ヘッダーでBearer
トークンとして渡します。