oAuth2のUserInfoエンドポイントでCORSを機能させるのに問題があります。私は、oAuth2 UserInfoリソースを呼び出すことによってクレーム(UserInfo)を取得したいと思います。COROがWSO2 APIマネージャーのoAuth2 UserInfoエンドポイントで機能していません
"WSO2 API Manager CORS" ... oAuth2リソースのCORSを有効にするには、上記のstackoverflowリンクで説明したようにCORSRequestハンドラを追加してSynapse設定で行う必要があります。 上記のリンクに記載されているように、Token en Revokeリソース(_TokenAPI_.xml
en _RevokeAPI_xml
)用にこのCORSRequestハンドラを追加しました。そして、それは働いた! 私のアプリでもCORSの問題が発見されたので、CORSRequestHandlerを_UserInfoAPI_.xml
(サーバーwso2server.batで再起動したもの)に追加して同じ手順を実行しましたが、同じCORSエラーが表示されます:
XMLHttpRequest cannot load https://localhost:9443/oauth2/userinfo?schema=openid. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:4200' is therefore not allowed access.
私のトークンリソースでCORSが動作していて、自分のuserinfoリソースで作業していないとは思いますか?
私はWSO2 Identity Serverを使用せず、oAuth2機能を備えたAPIマネージャを使用しています。 私はチェックして、Allows- *ヘッダーがクライアント(OPTIONSのプリフライト中)にブラウザ(javascript)でコールされていないことがわかりました。
このハンドラを追加するとCORSRequestHandlerが機能しないのはなぜですかUserInfAPI .xml?
HI Bhatiya、私に正しいURL(userinfoエンドポイント)を教えていただきありがとうございます。確かに、今、それは動作し、私は私のWebブラウザ(javascript)内からこのエンドポイントでCORS関連のエラーを取得していません。それでも、あなたが提案したエンドポイントを使用していたために、私はそれが奇妙に感じましたが、CORSエラーが発生しました。だから、私はブラウザキャッシングのためにこのエラーが発生したのかどうか疑問に思っています....(?)私はまだそれがなぜ今働いているのか説明できません。しかし、少なくとも、私は前進し、WSO2 APIマネージャーについてもっと多くのことを学んだことがあります;-)。 – user2120188
これはうまくいっていると聞いてうれしいです。私も以前の行動を説明することはできません。 :)ブラウザのキャッシュが時々不思議な仕方で動作するので、ブラウザキャッシュではないとは言えません:) – Bee
APIマネージャのURLも知っていますか?キーマネージャ(APIマネージャの独自のIdentity Server)からログアウトを強制しますか? API Managerのドキュメントでこれを見つけることができませんでした。 – user2120188