Tôi có vấn đề kỳ lạ với xác thực bằng azure. Nó hoạt động trong một kịch bản (đăng nhập với một ứng dụng góc sử dụng adal) nhưng không phải trong một ứng dụng khác (tải api web asp.net lên và đăng nhập thông qua cơ chế ủy quyền ui vênh vang). Tôi đã thu hẹp nó xuống một đường bưu điện đến:Sự cố với Azure AD B2C oauth/OpenIdConnect
https://login.microsoftonline.com/te/{tenantid}/oauth2/authresp
endpoint mà thay unhelpfully trả:
302
<html>
<head>
<title>Object moved</title></head>
<body>
<h2>Object moved to <a href="http://localhost:49919/swagger/ui/oauth2redirect-html#error=server_error&error_description=AADB2C%3a+An+exception+has+occured.%0d%0aCorrelation+ID%3a+1816d2f8-aa74-4433-a7c0-d9c8fabebdb0%0d%0aTimestamp%3a+2017-10-27+13%3a46%3a08Z%0d%0a&state={ommitted}">here</a>.</h2>
</body>
</html>
Về cơ bản nói với tôi một ngoại lệ đã xảy ra.
error_description = AADB2C Một ngoại lệ đã xảy ra.
CorrelationID = 1816d2f8-aa74-4433-a7c0-d9c8fabebdb0
Timestamp = 2017-10-27 13:46:08
Ứng dụng góc, thực hiện chính xác cùng một bài nhưng điều đó tuy nhiên trả về một liên kết với mã thông báo id:
302
<html>
<head>
<title>Object moved</title>
</head>
<body>
<h2>Object moved to <a href="http://localhost:4200/#state={state -
ommitted}&id_token={id token - omitted}">here</a>.
</h2>
</body>
</html>
Tôi không thể thấy bất kỳ sự khác biệt nào trong bài đăng. Cái này không hoạt động (bắt đầu từ vênh vang ui về dự án web api)
POST https://login.microsoftonline.com/te/{tenant - omitted}/oauth2/authresp HTTP/1.1
Host: login.microsoftonline.com
Connection: keep-alive
Content-Length: 1595
Cache-Control: max-age=0
Origin: https://login.microsoftonline.com
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
DNT: 1
Referer: https://login.microsoftonline.com/{tenant - omitted}/oauth2/authorize?client_id={clientid - omitted}&redirect_uri=https:%2f%2flogin.microsoftonline.com%2fte%2f{tenant - omitted}%2foauth2%2fauthresp&response_type=id_token&response_mode=form_post&nonce={nonce}&state=StateProperties
Accept-Encoding: gzip, deflate, br
Accept-Language: en-GB,en;q=0.9,de-CH;q=0.8,de;q=0.7,fr-CH;q=0.6,fr;q=0.5,it-CH;q=0.4,it;q=0.3
Cookie: {cookie - omitted}=; x-ms-gateway-slice=005; stsservicecookie=cpim_te
id_token={omitted}
Nhưng bài này không:
POST https://login.microsoftonline.com/te/{tenant - omitted}/oauth2/authresp HTTP/1.1
Host: login.microsoftonline.com
Connection: keep-alive
Content-Length: 1590
Cache-Control: max-age=0
Origin: https://login.microsoftonline.com
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
DNT: 1
Referer: https://login.microsoftonline.com/{tenant - omitted}/oauth2/authorize?client_id={clientid - omitted}&redirect_uri=https:%2f%2flogin.microsoftonline.com%2fte%2f{tenant - omitted}%2foauth2%2fauthresp&response_type=id_token&response_mode=form_post&nonce={nonce}&state=StateProperties
Accept-Encoding: gzip, deflate, br
Accept-Language: en-GB,en;q=0.9,de-CH;q=0.8,de;q=0.7,fr-CH;q=0.6,fr;q=0.5,it-CH;q=0.4,it;q=0.3
Cookie: {cookie - omitted}; x-ms-gateway-slice=003; stsservicecookie=cpim_te
id_token={omitted}
Khi bài viết được khá nhiều giống hệt vấn đề này phải nằm đâu đó trong hoặc cookie hoặc mã thông báo id (mà tôi không thể cung cấp vì lý do bảo mật). Dán mã thông báo ID từ cả hai yêu cầu vào http://www.jwt.io cung cấp cho tôi thông tin tương tự với các xác nhận quyền sở hữu chính xác có trong cả hai. Vì vậy, tôi là một chút khó khăn và hy vọng một người nào đó từ đội bóng xanh có thể bước vào và giúp đỡ?
Rất cám ơn
Bạn có một trang hoặc URL yêu cầu mà bạn có thể chia sẻ cho cả hai trường hợp? Nếu không, bạn có thể nhận URL yêu cầu từ yêu cầu không có người chơi và cung cấp cả hai trường hợp ngay cả khi nó nhắm mục tiêu đến localhost không? –
Có, tôi có thể cung cấp đầy đủ các yêu cầu từ fiddler nhưng tôi không thể gửi chúng ở đây vì chúng chứa thông tin nhạy cảm – Magrangs
@OmerIqbal Tôi đã thêm bạn trên LinkedIn, nếu bạn có thể nhắn tin cho tôi chúng tôi có thể phân loại cách nhận các yêu cầu này cho bạn. Cảm ơn – Magrangs