LINE WORKSをIdpとしたSSOで、SAML ResponseのReference URIの値が空で返ってくる
LINE WORKSをIdp、自社開発している社内システムをSPとしてSSOを実装したいと思っています。
LINE WORKSから送信されたSAML ResponseのSignatureを確認すると、Reference URIの値が空で返ってきています。<Reference URI="">
C#のSAML認証のライブラリを複数試してみましたが、いずれもReference URIが空の場合を考慮した処理になっておらず、必ずランタイムエラーが発生してしまいます。
試しにReference URIを読み取る部分のコードを書き換えてみるとログインできました。
しかし、詳しくないので認識が違っていたら申し訳ありませんが、おそらくSAMLの仕様的にはReference URIにはResponse IDと同じ値が設定されている(Response IDが"foo"の場合はSignatureに含まれるReference URIは"#foo")はずなのではないかと思っています。
できればライブラリをカスタムしたくないので、Reference URIが設定されてくる方法があれば知りたいです。
こちら(SP側)のリクエストの内容に何か問題があるのでしょうか?
もしくは他の原因が考えられますか?
それとも、SAML仕様上Reference URIが空なのは許容されており、単に使用したライブラリ側が考慮不足であっただけなのでしょうか?
リクエストの内容を貼ります。(ACS URLとSP Issuerだけ隠しました)
<samlp:AuthnRequest
ID="_ffbc7df4-181d-4cea-80a5-5c513d13ca50"
Version="2.0"
IssueInstant="2024-01-26T00:18:38Z"
ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
AssertionConsumerServiceURL="{LINE WORKSに登録したACS URL}"
xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol">
<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">{LINE WORKSに登録したSP Issuer}</saml:Issuer>
<samlp:NameIDPolicy Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified" AllowCreate="true" />
</samlp:AuthnRequest>
のSAML Request Bodyと比較すると、AutnnRequest ProviderNameが設定されていませんでしたが、この件と関係あるでしょうか?
投稿に新しいコメントが追加されましたら通知を送信します。
コメント0
まだ、解決できませんか?
今すぐ実際に使用しているLINE WORKSユーザーに質問してみましょう。