なんかうまくいかないんご

gsuiteサイトからADFSへのsamlリクエストをURLデコードした結果が書きのとおり

 

■admin.google.comにログイン済みの場合?       ----①

?SAMLRequest=

fVJNTxsxEL0j9T9Yvu9HorYKVnZRCkJEomVFlh56m3gnGzfe8eLxJuXf42xAwKHcrOfn9zGe+cW/zoo9ejaOCjlJcymQtGsMtYV8qK+Tmbwov5zNGTrbq8UQtnSPjwNyEPElsRovCjl4Ug7YsCLokFXQarX4eaumaa5674LTzkqxvCqkWcMOcAekoXFEjv72a2sbiIcGCDTqLdr1rpXi92us6THWknnAJXEAChHKJ7Mk/5pMZ3X+XeXn6tvsjxTVi9MPQ6cGn8Van0isbuq6Sqq7VT0K7E2D/ldkF7J1rrWYatcd7StgNvsIb8AySrFgRh9iwEtHPHToV+j3RuPD/W0htyH0rLLscDikbzIZZG2UgMYjdKmhjctAsyzH8aqxoX8318/zw6u/LN8c5tk7qfLl245tlleVs0Y/iYW17nAZA4RYJfghNrl2voPwf7dJOhkR0ySbkaoG4h612RhspMjKk+vH/Yhb8ww=

&RelayState=https://accounts.google.com/CheckCookie

?continue=

https://admin.google.com/giveadream.info/Dashboard&service=CPanel&hl=ja&checkedDomains=youtube&checkConnection=youtube:752:1&pstMsg=1&skipvpage=true

 

■SPinitiatedSAMLで、https://gsuite.google.comにログインを試みた場合     ----②

?SAMLRequest=

fVLLTsMwELwj8Q+R73lVSFRWE1SKKioViNrAgZubOOmSeB28Tgt/j5tSAQd6Hc/OY72Tmw/VejtpCDQmLA4i5kksdAlYJ+w5n/tjdpNeXkxIqLbj095ucSXfe0nWc5NIfHhIWG+Qa0FAHIWSxG3B19OHJR8FEe+MtrrQLfMWdwkDxEa/KVFptdnWgG9lXTqlDTbQ1E1TA5QVdFvHfjnFGh1iLYh6uUCyAq2DonjsR1f+aJxH1zyOeBS9Mi/7droFPDY4F2tzJBG/z/PMz57W+SCwg1KaR8dOWK113cqg0Opgnwki2Dm4Ei1J5k2JpLEu4Ewj9UqatTQ7KOTzapmwrbUd8TDc7/fBj0wowtpJiNJIoQLASoeiIJYO6+VDQ/Nrr+fzi5M/S38cJuEvqfT72w5tFneZbqH49KZtq/czF8C6Ktb0rslcGyXs/25xEA8IlH41UHmP1MkCKpAl88L06Pr3PtzVfAE=

&RelayState=https://www.google.com/a/giveadream.info/ServiceLogin

?service=

mail&passive=true&rm=false&continue=https://mail.google.com/mail/&ss=1<mpl=default<mplcache=2&emr=1&osid=1#

 

gsuiteとは別のSPで試した場合は、上記のようなgetクエリの第二変数「cotiune」や「service」はなかったのに、gsuiteはくっつけてリクエストしてくる。

また、上記のような「&RelayState」句はついていなかった。

 

上記の①の青文字部分だけをsamlエンコードした結果は、

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="ibakaekancadonnonjpblldaonjdanacechelbkg" Version="2.0" IssueInstant="2018-04-28T06:09:58Z" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ProviderName="google.com" IsPassive="false"AssertionConsumerServiceURL="https://www.google.com/a/giveadream.info/acs">

<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">google.com</saml:Issuer>

<samlp:NameIDPolicy AllowCreate="true" Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"/>

</samlp:AuthnRequest>

 

上記の②の青文字部分だけをsamlエンコードした結果は、

<samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" ID="innkojmafombhginjdgdmlnbnkikgkkgiidfiphl" Version="2.0" IssueInstant="2018-04-28T07:10:00Z" ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" ProviderName="google.com" IsPassive="false"AssertionConsumerServiceURL="https://www.google.com/a/giveadream.info/acs">

<saml:Issuer xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion">google.com</saml:Issuer>

<samlp:NameIDPolicy AllowCreate="true" Format="urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified"/>

</samlp:AuthnRequest>
 

いずれもADFSのエラーページに遷移してログイン失敗になったんご

 

ADFSのログは下記の通り

---------------- ここからエラー内容 ----------------

パッシブな要求のフェデレーション中にエラーが発生しました。 

追加データ 

プロトコル名: 
Saml 

証明書利用者: 
google.com 

例外情報: 
System.UriFormatException: 無効な URI: URI の形式を決定できませんでした。
   場所 System.Uri.CreateThis(String uri, Boolean dontEscape, UriKind uriKind)
   場所 Microsoft.IdentityServer.Web.Protocols.Saml.SamlSignInContext.Validate()
   場所 Microsoft.IdentityServer.Web.Protocols.Saml.SamlProtocolHandler.GetRequiredPipelineBehaviors(ProtocolContext pContext)
   場所 Microsoft.IdentityServer.Web.PassiveProtocolListener.OnGetContext(WrappedHttpListenerContext context)

---------------- ここまでエラー内容 ----------------

 

まったく意味が分からへんwww

 

結局下記がわかんない

 

1.samlプロトコル

・samlリクエストにくっつけられるパラメータ(タグと要素と属性)の種類と仕様

・samlレスポンスにくっつけられるパラメータの種類と仕様

 

2.samlプロダクト(IDPとSPの両方)ごとの仕様

■SPごとにsamlリクエストにくっつけて送るパラメータの種類

・gsuiteがしゃべってるsamlリクエストの各パラメータはどんなか?(上記参照)

・samlリクエストのパラメータにはどんな種類と組み合わせがあるのか?

・gsuiteなどの各SPごとにsamlリクエストのうちどのパラメータをくっつけて送る仕様なのか?

■IDPごとに処理できるsamlリクエストにくっついてるパラメータの種類

■IDPごとにsamlレスポンスにくっつけて送るパラメータの種類

■SPごとに処理できるsamlレスポンスにくっついてるパラメータの種類

 

結局これを読むしかないのか?

・saml2.0

http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html

・xml1.0

https://www.w3.org/TR/2000/WD-xml-2e-20000814#id

XMLを学ぼう