OIDCアプリのクライアント認証用のシークレットとキーを管理する
OIDCアプリのシークレットとキーの管理を使用すると、クライアントの認証方法を安全かつ効率的に管理できます。これらの設定では、以下を実行することができます。
- クライアントシークレットと公開鍵/秘密鍵のペアを選択し、Admin Consoleから直接、すばやく生成します。これにより、APIやサードパーティのWebサイトを使用して公開鍵と秘密鍵を生成する必要がなくなります。
- Admin Consoleで公開鍵のURIを指定し、Oktaが更新された公開鍵を自動的にフェッチできるようにします。これにより、キーペアをローテーションするときに、Admin Consoleで公開鍵を手動で更新する必要がなくなります。
- 2つのクライアントシークレットを同時に生成して、アプリケーションのダウンタイムなしで安全にローテーションできるようにします。アプリのクライアントシークレットは2つまで生成できます。
- クライアントシークレットと公開鍵/秘密鍵の認証方法を切り替えます。
Okta APIを使用して、これらのタスクを実行することもできます。「クライアントシークレットのローテーション」を参照してください。
開始する前に
OIDCアプリを構成する他の設定を見直します。OpenID Connectアプリ統合を作成するを参照してください。
この手順を開始する
OAuthのシークレットとキーの管理では、次のタスクを実行することができます。
- クライアント認証用の公開鍵/秘密鍵のペアを生成する
- クライアント認証用の公開鍵を追加する
- クライアント認証用に2番目のキーペアを追加する
- URLから公開鍵を自動的に更新する
- 2番目のクライアントシークレットを作成してクライアントシークレットをローテーションする
- クライアント認証方法を変更する
クライアント認証用の公開鍵/秘密鍵のペアを生成する
- OIDCアプリに移動します。
- 一般(General)(General tab)タブをクリックします。
- クライアントの資格情報(Client Credentials)セクションで、編集(Edit)をクリックします。
- クライアント認証(Client Authentication)で、公開鍵/秘密鍵(Public Key / Private Key)を選択します。
- 公開鍵(Public Keys)セクションで、キーを追加(Add Key)をクリックします。公開鍵を追加(Add a Public Key)(Add a public key)ポップアップウィンドウが開きます。
- 新しいキーを生成(Generate New Key)ドロップダウンメニューで、For client authentication (sig)(クライアント認証用(署名))を選択します。これにより、クライアント認証用の公開鍵と秘密鍵が生成されます。
- 後で参照できるように、秘密鍵を安全な場所にコピーします。秘密鍵をJSONまたはPEMのいずれかの形式でコピーします。秘密鍵は生成時に一度だけ表示されます。Oktaは秘密鍵を保存しません。
- 完了(Done)をクリックします。
- 一般(General)タブで、保存(Save)をクリックします。
公開鍵は一般(General)タブに表示されます。キーをクリックすると、JSON形式で表示されます。
クライアント認証用の公開鍵を追加する
- OIDCアプリに移動します。
- 一般(General)(General tab)タブをクリックします。
- クライアントの資格情報(Client Credentials)セクションで、編集(Edit)をクリックします。
- クライアント認証(Client Authentication)で、公開鍵/秘密鍵(Public Key / Private Key)を選択します。
- 公開鍵(Public Keys)セクションで、キーを追加(Add Key)をクリックします。公開鍵を追加(Add a Public Key)(Add a public key)ポップアップウィンドウが開きます。
- このウィンドウで、公開鍵をJSON形式で貼り付けます。
- 完了(Done)をクリックします。
- 一般(General)タブで、保存(Save)をクリックします。
公開鍵は一般(General)タブに表示されます。キーをクリックすると、JSON形式で表示されます。
クライアント認証用に2番目のキーペアを追加する
- OIDCアプリに移動します。
- 一般(General)(General tab)タブをクリックします。
- クライアントの資格情報(Client Credentials)セクションで、編集(Edit)をクリックします。
- クライアント認証(Client Authentication)で、公開鍵/秘密鍵(Public Key / Private Key)を選択します。
- 公開鍵(Public Keys)セクションで、キーを追加(Add Key)をクリックします。公開鍵を追加(Add a Public Key)ポップアップウィンドウが開きます。
- このウィンドウで、公開鍵をJSON形式で貼り付けます。または、新しいキーを生成(Generate New Key)をクリックし、For client authentication (sig)(クライアント認証用(署名))を選択して、新しい公開鍵と秘密鍵のペアを生成します。
- 後で参照できるように、秘密鍵を安全な場所にコピーします。秘密鍵をJSONまたはPEMのいずれかの形式でコピーします。秘密鍵は生成時に一度だけ表示されます。Oktaは秘密鍵を保存しません。
- 完了(Done)をクリックします。
- 一般(General)タブで、保存(Save)をクリックします。
公開鍵は一般(General)タブに表示されます。キーをクリックすると、JSON形式で表示されます。
URLから公開鍵を自動的に更新する
Admin Consoleで公開鍵を保存するURIを指定することで、OIDCアプリのprivate_key_jwtクライアント認証を構成することができます。これにより、キーペアをローテーションするたびにOktaで公開鍵を手動で更新する必要がなくなります。Okta は、このURLからアプリの最新の公開鍵を動的にフェッチします。
- OIDCアプリに移動します。
- 一般(General)(General tab)タブをクリックします。
- クライアントの資格情報(Client Credentials)セクションで、編集(Edit)をクリックします。
- クライアント認証(Client Authentication)で、公開鍵/秘密鍵(Public Key / Private Key)を選択します。
- URLを使用してキーを動的にフェッチ(Use a URL to fetch keys dynamically)を選択します。
- Urlフィールドに、公開鍵が保存されているURLを入力します。
- 保存(Save)をクリックします。
第2のクライアントシークレットを作成してクライアントシークレットをローテーションする
認証にクライアントシークレットを使用している場合は、ローテーションに使用する2番目のシークレットを生成することができます。
- OIDCアプリに移動します。
- 一般(General)(General tab)タブをクリックします。
- クライアントシークレット(Client Secrets)で、新しいシークレットを生成(Generate new secret)ボタンをクリックします。新しいシークレットが生成され、クライアントシークレット(Client Secret)リストに表示されます。両方のシークレットがデフォルトでアクティブになります。
- クリップボードアイコンをクリックします。新しく生成されたシークレットを使用してサーバーを更新します。
- Admin Console に戻り、古いシークレットのステータスを非アクティブ(Inactive)に設定します。非アクティブなシークレットを削除することもできます。
クライアント認証方法を変更する
クライアントシークレットと公開鍵/秘密鍵を切り替えることができます。
- クライアントシークレットから公開鍵/秘密鍵に切り替えた場合は、アプリのすべてのクライアントシークレットが削除されます。
- 公開鍵をOktaで保存するのではなくURLからフェッチするように切り替えると、Oktaに保存されている公開鍵は削除されます。