코어: 테스트용 Auth0 보호 API

7464 단어 jwtrestinsomniaauth0

소개하다.


오랫동안 우체부 사용자를 한 후에 저는 최근에 Insomnia Core으로 전환했습니다. 이것은 경량급이고 간단한 도구로 REST를 테스트할 수 있지만 GraphQL과 gRPC 서비스도 테스트할 수 있습니다.
불면증의 핵심 기능 중 하나는 AWS IAM, NTLM, OAuth 2.0을 포함한 다양한 인증 방법을 지원하는 것이다(기술적으로는 인증이 아니다)🙃 ). OAuth 2.0 및 다른 라이센스에 대한 지원으로 Auth0에서 보호되는 API를 쉽게 테스트할 수 있습니다.어디 보자.

고객 인증서


Auth0에서 매우 유행하는 기능은 OAuth 2.0 client_credentials을 통해 기계가 기계에 대한 장면을 지원할 수 있는 권한을 부여하는 것이다.이 예에서는 Auth0에 API(일부 역할 영역을 선택할 수 있음)를 생성한 다음 시스템 간 응용 프로그램도 생성했습니다.

그런 다음 내가 만든 API에 대해 응용 프로그램을 승인해야 합니다.

Postman과 마찬가지로 모든 설정, 비밀, URL 등을 정의할 수 있는 불면증 환경을 만들 수도 있습니다.변수로 삼다.Auth0 계정에 다음과 같은 변수가 만들어졌습니다.

{
  "AUTH0_TOKEN_ENDPOINT": "https://sandrino-dev.auth0.com/oauth/token",
  "AUTH0_CLIENT_ID": "xYHne6VBWIhWBzxF4Hy8ZTiDCrex00N3",
  "AUTH0_CLIENT_SECRET": "bNZ2xSbbS3Mvq1ND1xZC0J2zu...",
  "AUTH0_AUDIENCE": "urn:my-api"
}
이렇게 하면 나는 요청에서 이 값들을 사용할 수 있고, 여기저기 복사할 필요가 없다.다음 단계에서 Ican은 내 요청에 대해 인증을 설정하고 다음 설정을 사용하여 OAuth 2를 클라이언트 자격 증명 유형으로 구성할 수 있습니다.
  • ACCESS TOKEN URL: Auth0 임대인
  • /oauth/token 단점
  • CLIENT ID: 컴퓨터 대 컴퓨터 어플리케이션
  • 의 클라이언트 ID
  • CLIENT SECRET: 기계가 기계 응용 프로그램에 대한 클라이언트 기밀
  • HEADER PREFIX: Bearer으로 설정
  • AUDIENCE: API
  • 의 식별자

    Fetch Tokens 버튼은 이제 Auth0에서 새로운 access_token을 요청하는 데 사용할 수 있습니다.완료되면 보호된 API 끝점을 호출할 수 있습니다.

    Timeline 탭에서는 Authorization 헤더와 API로 전송되는 access_token을 비롯한 HTTP 요청을 보다 자세히 확인할 수 있습니다.

    인증 코드 부여


    사용자 기반 흐름을 테스트하려면 일반 웹 응용 프로그램, 단일 페이지 응용 프로그램 또는 네이티브 응용 프로그램을 만들거나 authorization_code 지출금을 테스트할 수 있습니다.
    이 예에서는 일반 웹 응용 프로그램과 오프라인 액세스가 활성화된 API(요청 refresh_token)를 만듭니다.응용 프로그램의 리셋 URL은 반드시 어떤 값으로 설정해야 하기 때문에 이 테스트에 대해 나는 단지 그것을 http://insomnia으로 설정할 뿐이다
    다음 단계로 불면증 환경을 업데이트했습니다. AUTH0_AUTHORIZE_ENDPOINT:
    {
      "AUTH0_AUTHORIZE_ENDPOINT": "https://sandrino-dev.auth0.com/authorize",
      "AUTH0_TOKEN_ENDPOINT": "https://sandrino-dev.auth0.com/oauth/token",
      "AUTH0_CLIENT_ID": "DVIiCVJccDTscB1eBFS3BFrQ8JACl3EF",
      "AUTH0_CLIENT_SECRET": "ZLSi5XpuG6YLdryNX2dKsicU1....",
      "AUTH0_AUDIENCE": "urn:my-api"
    }
    
    인증을 요청할 때 OAuth 2에서 인증 코드 인증 유형을 선택할 수 있습니다.

    다음 설정에 유의하십시오.
  • REDIRECT URL: 또한 http://insomnia으로 설정합니다.동전을 되찾을 때 브라우저 창이 열리고 사용자 신분으로 로그인할 수 있습니다.마지막으로 Auth0은 http://insomnia으로 리디렉션되며, 이 리디렉션을 포착하고 코드 교환을 실행합니다.
  • SCOPE: offline_access이 필요하거나 API가 필요한 역할 도메인이 있으면 refresh_token이 필요합니다.
  • Fetch Tokens를 클릭하면 제가 로그인할 수 있는 브라우저 창이 열리고 Outh 2 댄스는 제가 담당합니다.

    처음에 refresh_token 역할역을 사용하여 영패를 요청하면 그 어떠한 후속 영패도 offline_access을 사용하기 때문에 다시 로그인할 필요가 없습니다.

    One nice thing here is that Insomnia also supports Refresh Token Rotation, so if your Authorization Server returns a new refresh_token for each exchange.


    자원 소유자 암호 부여


    마지막으로 리소스 소유자 암호를 사용하여 승인된 레거시 응용 프로그램을 사용하는 경우 다음과 같은 경우에도 사용할 수 있습니다.

    Note that for Auth0 you'll need to configure the credentials to be In Request Body


    Auth0에서 여러 데이터베이스 연결을 사용할 때 사용할 연결을 정의할 수 없기 때문에 문제가 발생할 수 있습니다.Auth0 임차인 설정에서 기본 데이터베이스 연결을 구성할 수 있습니다.

    ✅ 성공!


    우리 시작했어.Auth0으로 보호된 API를 테스트하는 것은 결코 쉬운 일이 아닙니다.더 나아가 불면증 CLI(inso)를 사용하여 테스트를 자동화할 수도 있습니다.

    좋은 웹페이지 즐겨찾기