タイトルの通りだったのですが、結構ハマったのでメモしておきます。
結論を書いておくと、すでに招待中( Invite Pending ) のユーザは SAML で JIT ログインできませんので一度削除しました、という話です。
前提
Datadogで Single Sign On With SAML
の機能を、AWS SSO と連携して運用しています。
特に Just in time (JIT) provisioning 機能は Datadog に存在しないユーザであっても、SAML ログインをしようとしたタイミングで存在しなければ作成してくれる素晴らしい機能として重宝していました。
突然のヘルプコール
この運用は2ヶ月ほど続いていてそろそろ安定してるなと思った矢先に、Slackでヘルプの依頼が飛んできました。
「AWS SSO を利用して、Datadog ログインしようとしましたができません。今回が初めてのログインです。エラーは以下の画面です!!」
Arf.
Unknown User
There is no active account for xxxxxx at the org with id xxxxxx .
これを受けて以下を調査しましたが、問題はありませんでした。
- AWS SSO の Application 設定で、Datadog を許可している AD Group
- 上記 AD Group に、該当ユーザが所属していること
- 該当ユーザと同じ部署( AD Group ) に所属している他の方は問題なく Datadog へログインできている
- 該当ユーザの AWS SSO のポータルには、ちゃんと Datadog へログインするためのアイコンが表示されている
ここまで調べて、これは AWS SSO ではなく Datadog 側に何か問題がありそうだと考え Datadog のユーザリストを検索しました。 すると該当ユーザが招待中( Invite Pending ) ステータスで存在していることがわかり、これを一旦削除することで無事に JIT Provisiong によるログインができました。
まとめ
わかってみれば簡単な話で以下の条件が重なってハマっていたのでした。
- ユーザはすでに作成されているため JIT with SAML によるユーザ作成は行われない
Invite Pending
ステータスであるため、SAML ログインもできない
これは、AWS SSO を運用する前の Datadog はメールによる認証を行なっていた名残で、その頃に招待を受けたが承認せずにいたユーザがはまり込む罠といえます。
今回を機に全ての Datadog Organization について Invite Pending
状態のユーザがいないかをチェックして削除しました。(極少数でしたが...)
みなさんもお気をつけくださいませー