見出し画像

Oktaとkintoneを連携するときのコツ

みなさん今日も元気にSAMLってますか?😸

Okta導入を始めたときにまずkintoneで検証をしたときにハマったのでその時の備忘録も兼ねて記事にしておこうと思います。

最初に知っておきたいIdPとSPの関係について

このページにあるようにkintoneはSP Initiatedとして動作しますとあります。私はこの部分を正しく認識できずにいたのでだいぶ躓いてしまいました。

SP InitiatedとはSPであるkintoneにアクセスしたときにIdPへ遷移して認証をするという流れです。
スタート地点のSPへアクセスが必要なのでIdP側をスタートとすることはできません。

逆にIdP InitiatedであればIdP側をスタートとしてSP側へ遷移することが可能です。

実際の設定方法

Okta側
ApplicationsからAdd Applicationをしkintoneを検索します。
kintone SAMLがあるのでAddしていきます。

スクリーンショット 2020-11-16 16.00.25

Application labelは『kintone_SAML』としておいてDomain Nameにはkintoneへアクセスする際のサブドメインを指定します。

スクリーンショット 2020-11-16 16.01.06


『kintone_SAML』アプリが追加されたら、Sign OnからView Setup Instructionsをクリックするとセットアップについて詳細な内容が表示されます。

スクリーンショット 2020-11-16 16.02.41


ここで各環境に応じた設定値として下記の項目が表示されます。

・Login URL
・Logout URL
・Certificate

これらの値をkintone側へ設定し連携させるのですがLogin URLだけがSign into the Okta Admin dashboard to generate this value.と表示されます。
kintone側の必須項目なのでこれがないと完了できません。

この値は下記から確認が可能です。
Oktaのアプリ画面Sign OnにあるIdentity Provider metadataをクリックしXMLファイルの中身を表示させます。
このファイルの中に下記のようなsso/samlで終わる記述があると思います。

https://<yourdomain>.okta.com/app/kintone/xxxxxxxxx/sso/saml

これがLogin URLです。

kintone側

cybozu.com共通管理の左メニューからログインをクリックしると以下のような設定項目が表示されます。

スクリーンショット 2020-11-16 16.05.23

 ProviderのSSOエンドポイントURLはさきほど確認したLogin URLを、
cybozu.comからのログアウト後に遷移するURLはLogout URLをそれぞれ入力します。
また、Identity Providerが署名に使用する公開鍵の証明書については、OktaのSign OnからView Setup InstructionsにあるCertificateをクリックするとダウンロードできるのでそれをアップロードします。

これでアプリ設定はできました。
次に『kintone_SAML』を利用するユーザーをPepoleもしくはGroupでアサインします。後述する内容とも関連するのですがアサインはあらかじめGroupを作成して行ったほうが楽なのでGroupで実施することをおすすめします。
もちろんkintone側にもOktaと同じメールアドレスでユーザーが作成されている必要があります。

早速動作チェックをしてみましょう。設定に利用したブラウザとは別のブラウザもしくはシークレットブラウザで下記にアクセスします。

https://<yourdomain>.cybozu.com/

Oktaログインへ遷移すれば成功です。

最後のひと手間

次にOktaポータルからの遷移を確認してみましょう。​

テストのために別のブラウザもしくはシークレットブラウザなどを利用し、アサインしたユーザーのOktaポータルにkintoneの項目からkintoneへ遷移できるか確認します。

このとき下記のようなエラーが表示されるはずです。

スクリーンショット 2020-11-15 15.57.50

これはkintoneがIdP InitiatedなSSOを実現できないからとなります。
そのためOktaのブックマークアプリを作成し、SP側のログインURLを設定する必要があります。

まずApplicationsからAdd ApplicationをしBookmark Appを検索しAddします。

スクリーンショット 2020-11-16 16.15.17

Application labelは『kintone』とし、URLにkintone側のURLを設定します。

スクリーンショット 2020-11-16 16.17.33

アプリのアイコンが星になっているのでkintoneロゴをアップロードします。

スクリーンショット 2020-11-16 16.19.46

『kintone_SAML』と同様にアプリにGroupをアサインをします。予めGroupを作っていれば人をGroupに入れるだけで『kintone_SAML』と『kintone』の両方に同時にアサインできるようになります。

このままではOktaポータルに『kintone_SAML』と『kintone』の二つが表示され、混乱を起こす原因となります。

『kintone_SAML』アプリはApplication visibilityの設定でブラウザ/モバイルアプリの両方にチェックを入れOktaポータルから非表示に設定します。

スクリーンショット 2020-11-16 16.33.08

以上でSP InitiatedなkintoneをOktaポータルから問題なくアクセスできるようになりました。
念の為、シークレットブラウザなどを利用してOktaポータルの『kintone』から問題なく遷移できるかを確認してみましょう。

ちなみにkintone側の設定でミスってしまってSSOできない状態でkintoneからログアウトしてしまった場合はCybosuシステム管理者であれば下記のURLからIDとPWによるバイパスログインを行うことができます。

https://(サブドメイン名).cybozu.com/login?saml=off

参考:SAML認証の設定ミスでログインできなくなった場合

それではよいSAMLライフを👋

この記事が気に入ったらサポートをしてみませんか?