상황 :푸른 API 관리의 OAuth 2.0 리소스 소유자 암호 흐름 클라이언트 ID
내 소프트웨어 응용 프로그램은 고객에 로그인하여 자원 소유자 암호 흐름을 사용하는 자신의 clientIDs을 생성 할 수있는 멀티 테넌트 (multi-tenant) 응용 프로그램입니다 OAuth 요청.
OAuth 2.0 인증 서버는 WebAPI로 작성되었으며 Microsoft 제공 Microsoft.Owin.Security.OAuth.OAuthAuthorizationServerProvider 클래스에서 상속받습니다. 은 현재, 우리는 하나 개의 흐름 (자원 소유자 암호)처럼 보이는 토큰을 얻을 수있는 지원 : 우리가 자격 증명 & 클라이언트 ID를 검증 한 후
POST /api/v1.0/token HTTP/1.1 Host: api.mysoftwareapp.com UserName={username}&Password={password}&grant_type=password&client_id={client_id}
을, 우리는 마이크로 소프트에 의해 생성 된 액세스 토큰을 다시 보냅니다. Owin.Security.OAuth.OAuthAuthorizationServerProvider 기본 클래스입니다. 리소스에 액세스하려면 사용자는 인증 헤더에있는 액세스 토큰을 무기명 토큰으로 제공해야합니다. 클라이언트 ID는 다시 전달할 필요가 없습니다. 예 아래 :
GET /api/v1.0/Partners HTTP/1.1 Host: api.mysoftwareapp.com Authorization: Bearer this_is_where_the_token_goes
내 고객이 자신의 사용자 이름, 암호 및 클라이언트 ID 만들기 테스트 통화를 입력 할 수 있도록하기위한 하늘빛의 API 관리의 개발자 포털 기능을 구현 허용하고 싶습니다 그래서 그들은 그들의 세입자의 맥락에서 데이터를 얻습니다. (궁극적으로 클라이언트 ID에 의한 속도 제한을 가능하게합니다.) 게시자 포털에서
는 보안 ->의 OAuth 2.0에서, 나는했습니다 :- 만 자원 소유자 암호 부여 유형을 확인.
- 내 승인 요청 방법을 POST로 지정했습니다.
- 내 토큰 엔드 포인트 URL을 추가했습니다.
- 추가 본문 매개 변수로 grant_type/password가 추가되었습니다.
- 자원 소유자 암호 자격 증명을 비워 둡니다. 그들이 필요한 된 이후
은 또한 다음과 같은 일을했지만, 난 단지 자원 소유자 암호 흐름을 지원하고, 내 자신의 응용 프로그램을 통해 클라이언트 등록 처리로 인해 적용되지 않습니다 믿습니다 추가
- 내 승인 엔드 포인트 URL.
- 내 클라이언트 인증 방법으로 '본문'을 선택했습니다.
- 가짜 클라이언트 자격증 명을 추가했습니다.
- 가짜 클라이언트 등록 페이지 URL이 추가되었습니다. 나는 개발자 포털로 이동하여 엔드 포인트를 볼 때
, 내 인증 서버에서 '자원 onwer 암호'를 선택할 수 있습니다 :
다음은 그 스크린 샷입니다. 그러나 이것을 선택하면 클라이언트 ID가 아닌 내 사용자 이름과 암호 만 입력 할 수있는 팝업이 표시됩니다.
인증을 설정할 때 사용자가 사용하려는 클라이언트 ID를 지정할 수 있도록 Azure API 관리를 설정하려면 어떻게해야합니까? 또는 특정 API를 호출 할 때 클라이언트 ID가 필요하도록 Google API를 변경해야하는 경우 토큰을 요청할 때 대신 자원을 사용합니까?
이 내가 원하는 것 무엇을 다음 POST 본문에 이러한 값을 전달하기 위해
안녕 케빈, 응답에 대한 감사합니다. 나는 그것을 바꿨지 만 여전히 필요한 것을 얻지 못한다. 개발자가 토큰을 요청할 때 클라이언트 ID를 입력 할 수있는 능력이 필요하다. 원본 게시물을 내가 찾고있는 스크린 샷으로 업데이트했습니다. – tarun713