HRBrain と Okta の SSO を OpenID Connect で構成する
はじめに
HRBrain というサービスを社内で利用する上で、OpenID Connect による SSO を IDaaS 製品の Okta を使って設定してみたメモです。
HRBrain 公式が動作確認している IdP は Azure AD と Google Workspace のみだそうで Okta については設定マニュアルの類は無かったので、今後実施する方のために残しておこうと思いました。
なお自分的には Okta で OAuth や OpenID Connect を利用する際の Authorization Server の確認方法の備忘録という意味でも書いています。
設定手順
HRBrain から CallbackURL を取得
まずは HRBrain にログインし、人事評価メニューから 運用管理 → アクセス制御 の順に開き、SSO 設定 を 設定する
に変更します。
Callback URLを表示する
をクリックすると https://{組織のドメイン名}.auth.hrbrain.jp/ssologin
な URL が表示されるのでコピーしておきます(この後 Okta 側の設定で使います)
Okta 側の アプリケーション設定
Okta の管理画面に入って Applications → Add Application を選択
HRBrain は OIN にテンプレートが無いので Create New App
から手動で作成します
Platform は web
、Sign on method は OpenID Connect
を選択して Create
Application name と Application logo に任意の内容を設定し、Login redirect URIs の Add URI
をクリックし、先程 HRBrain の画面でコピーした Callback URL をペーストして Save します
保存されたアプリケーションの General タブを開きます。
ここは任意ですが、もし HRBrain 起点の SSO(RP Initiated Sign-On) だけではなく Okta 側からの SSO(IdP Initiated Sign-On) も実装したい場合は General Settings セクションの Allow grant types で Implicit (Hybrid)
と Allow ID Token with implicit grant type
にチェックを入れ、その下の LOGIN セクションの Login initiated by の値を Either Okta or App
に設定し、Display application icon to users
のチェックを入れておきましょう。
Client ID, Client Secret の取得と設定
続いてその下にある Client Credentials セクションの Client ID と Client secret をコピーし、HRBrain の SSO 設定画面で同名の設定項目にペーストします。
(Okta)
(HRBrain)
Authorization Server の情報取得と設定
残りの設定項目である issuer
, authorization_endpoint
, token_endpoint
, jwks_uri
ですが、Okta にはテナントを作成した時点で Org Authorization Server と呼ばれる組み込みの Authorization Server が用意されています。
Org Authorization Server は https://${yourOktaOrg}.okta.com/.well-known/openid-configuration
にアクセスすることで JSON 形式で値を確認できます。
curl https://example.okta.com/.well-known/openid-configuration | jq
{
"issuer": "https://example.okta.com",
"authorization_endpoint": "https://example.okta.com/oauth2/v1/authorize",
"token_endpoint": "https://example.okta.com/oauth2/v1/token",
"userinfo_endpoint": "https://example.okta.com/oauth2/v1/userinfo",
"registration_endpoint": "https://example.okta.com/oauth2/v1/clients",
"jwks_uri": "https://example.okta.com/oauth2/v1/keys",
Org Authorization Server から参照したそれぞれの値をコピーして HRBrain 側の設定欄にペーストすればすべての設定項目が埋まるので保存をクリックします。
以上で SSO の設定は完了です。
実際に正常に SSO が動作するか確認してみましょう。
おまけ(自動ユーザ作成機能について)
前述のスクリーンショットにもありますが、HRBrain の SSO 設定画面には 自動ユーザ作成
という設定があります。
気になって確認してみたのですが、これは有効にしておくと SSO によるログイン時に IdP から渡されたユーザーが HRBrain に存在しない場合に自動的にユーザーを作成する機能のようです。
なおその際に IdP から渡されて自動設定される属性値は氏名とメールアドレスのみとなります。
ユーザーがログインする前に部署や役職をあらかじめ設定しておきたいという要件がある場合は難しいですが、そうではなく氏名とメールアドレスさえ入っていればいいという組織であれば利用する価値があるかもしれません。
Discussion