2017-01-18 4 views
1

상황 :푸른 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이 추가되었습니다. 나는 개발자 포털로 이동하여 엔드 포인트를 볼 때 enter image description here

    , 내 인증 서버에서 '자원 onwer 암호'를 선택할 수 있습니다 :

다음은 그 스크린 샷입니다. 그러나 이것을 선택하면 클라이언트 ID가 아닌 내 사용자 이름과 암호 만 입력 할 수있는 팝업이 표시됩니다.

인증을 설정할 때 사용자가 사용하려는 클라이언트 ID를 지정할 수 있도록 Azure API 관리를 설정하려면 어떻게해야합니까? 또는 특정 API를 호출 할 때 클라이언트 ID가 필요하도록 Google API를 변경해야하는 경우 토큰을 요청할 때 대신 자원을 사용합니까?

이 내가 원하는 것 무엇을 다음 POST 본문에 이러한 값을 전달하기 위해

Screenshot of what I'm looking for.

답변

0

, 당신을 "포스트" "기본"에서 클라이언트 인증 방법을 변경해야합니다.

이동 게시자 포털 보안

및 수정 OAuth2를 서버 설정은 아래처럼합니다 :

enter image description here

+1

안녕 케빈, 응답에 대한 감사합니다. 나는 그것을 바꿨지 만 여전히 필요한 것을 얻지 못한다. 개발자가 토큰을 요청할 때 클라이언트 ID를 입력 할 수있는 능력이 필요하다. 원본 게시물을 내가 찾고있는 스크린 샷으로 업데이트했습니다. – tarun713