こんにちは、ちゃりおです。
最近、Datadogを利用しています。
ユーザ管理どうしようか迷っていました。
漠然とSSOで行けたらいいなーと思っていました。
AWS SSOをすでに使っていたので、AWS SSO経由でDatadogにログインできるようにしました。
設定する際に手順はでてくるのですが、少しハマった箇所があるのでブログに書きます。
Assertion Consumer Service URLが正しくない
下記のエラーが出ました。
"SAML Response is missing "InResponseTo" attribute."
「Assertion Consumer Service URL」が正しくなかったみたいです。
ドキュメントからそのままとってきたのですが、Datadogの値を見ると少し違っていました。
DatadogのSAMLの設定の値をそのまま貼ったら、エラーが解消しました。
ドキュメントだと以下をになっていましたが、
https://app.datadoghq.com/account/saml/assertion
idが含まれている値が必要だったみたいです。
https://app.datadoghq.com/account/saml/assertion https://app.datadoghq.com/account/saml/assertion/id/hogehogehoge
Assertion Consumer Service URLとは
「Assertion Consumer Service URL」って何と思ったので調べてみました。
略称は、ACS URLだそうです。
少し古い記事ですが、用語がまとまっています。
Windowsで構築する、クラウド・サービスと社内システムのSSO環境
上記URLの表から引用+追記。
用語 | 役割 | 備考 |
---|---|---|
Idp | 認証を行い、アイデンティティ情報を提供する | AWS SSO |
SP | IdPに認証を委託し、IdPによる認証情報を信頼してサブジェクトにサービスを提供する | Datadog |
Assertion | IdPが本人性を証明するために発行する文書。属性やアクセス権情報などを含むこともある | |
ACS | SP内でAssertionの解釈、認可を行う |
今回は、Datadog内での認可に使うURLです。
認可で使うから、一意な情報であるIDが必要みたいです。
JITを有効化していなかった
SSOを有効化したら、Datadogにいないユーザでも初回ログイン時に作られるだろうと思いました。
しかし、エラーがでました。
原因はJIT(ジャストインタイムプロビジョニング)を有効化していなかったことです。
JITは、簡単に言うとユーザが初めてログインするときにユーザを作成する機能です。
作成されるユーザの権限はDatadog側で指定できました。
参考 SAML 用のジャストインタイムプロビジョニングについて
設定は簡単で、DatadogのSAML ConfigからJITを有効にして許可するドメインを追加するだけです。
まとめ
SAMLの設定下の初めてだったので、色々と勉強になりました。
手順も思ったより簡単ですぐできました。
SAML自体の知識不足を感じたので、仕組みとか勉強していきたいです。