LoginSignup
5
2

More than 1 year has passed since last update.

KeyCloakのIdPにOktaを設定する

Last updated at Posted at 2021-12-02

この記事は DENSOアドベントカレンダー2021 の3日目の記事です。

はじめに

Oktaとは?

認証認可を提供するIDaasの一つ
https://www.okta.com/jp/

KeyCloakとは?

認証認可を提供するOSSの一つ
https://www.keycloak.org/

なぜOktaとKeyCloakを連携させる必要があるのか

もともとKeyCloakで開発に使用するAWSなりにシングルサインオンの環境を構築していたのですが、Oktaに移行をすることになりました。その場合、通常であればOktaで認証認可を行うように構築すると思うのですが、今回は事情があり一部のユーザーはKeyCloakを使い続ける必要がありました。
ただ、一人のユーザーの認証を行う場所は一箇所にしたかったためOktaにユーザー情報がある場合はKeyCloakからOktaを参照するようにしました

構成例

以下のようにあるアプリケーション(今回だとアプリケーションB)だけはKeyCloakにユーザーがいる場合はKeyCloakで認証、Oktaにユーザーがいる場合はKeyCloakからOktaへ認証をするようにします。
image.png

設定について

概要

  1. KeyCloakのIdentity ProviderにOktaを設定
  2. Okta側でSAML2.0のアプリとしてKeyCloakを登録 を行います。

具体的な手順

KeycloakでIdentity Providerを作成する

Keycloakの管理者画面を開きIdentity Providerの作成を選択してSAML v2.0を選択します。
image.png

次にKeycloakのAlias(なんでもよい), Display Name(なんでもよい)を設定します。ここではまだSaveはしません。理由はとでメタデータのインポートをするためです。

ここでKeycloakのRedirect URIをコピーしておきます。(これはOkta側で設定するためです)
image.png

更にKeycloakのService Provider Entity IDをコピーしておきます。(これはOkta側で設定するためです)
image.png

ここで画面は閉じずそのままにしておきます。(後で設定をするためです)

OktaでSAML 2.0のアプリを作成する

Oktaの管理者画面を開きSAML 2.0のアプリケーションを作成します。
image.png

任意のアプリケーション名を設定しNextを選択
その後表示される設定画面で
1.Single sign on URLに、KeycloakのRedirect URIをペーストする
2.Audience URIにKeycloakのService Provider Entity IDをコピーする
image.png

その他は変えずに、OktaでNext->Finishを選択しアプリケーションの作成を完了します。

再度作成したアプリケーションを選択してSign Onタブを開きます。
image.png
ここに表示されるIdentity Provider metadataのリンクのアドレスをコピーする

最後に作成したアプリケーションに対してアクセス権を付与しておきます。

KeyCloak側でOktaのメタデータのインポート

再度KeyCloakの画面に戻り
KeycloakのImprot from URLにOktaのメタデータのリンクをペーストしてSaveする
image.png

これで設定は完了です。

動作確認について

別ブラウザ等でKeyCloakのログイン画面を見るとはじめは表示されていなかったIdentity Providerの情報が表示されるようになります。(今回はsamlという名前)
image.png

このリンクをクリックするとOktaのログイン画面に表示され
image.png
Okta側でログインが完了するとKeyCloak側でのログインもでき目的のアプリケーションにアクセスできるようになります。

まとめ

KeyCloakのIdPにOktaを設定する方法についてまとめました。すこしトリッキーな構成ですが参考になれば幸いです。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2