Azure AD OAuth Client Flow
νμ¬μμ μΉμ¬μ΄νΈλ₯Ό λ§λ€λ€ 보면 api μ frontλ₯Ό λ§λ€μ΄μΌ νλ€.
μ¬κΈ°μ μΈμ¦μ azure ad(νμ¬μ μ μ μ 보)μ κ°μΌλ©΄ νΈν λκ° μλ€.
Azure ADλ₯Ό μ¬μ©νμ¬ μ μ λ‘κ·ΈμΈ νλ λΆλΆμ λ°λ‘ μ 리νκΈ°λ‘ νκ³ μ€λμ api keyμ²λΌ μ¬μ©ν μ μλ λΆλΆμ νμΈν΄λ³΄μ.
api key
Azure adλ oauth2λ₯Ό μ¬μ©νλ€.
api keyλ oauth2μμ client credential flowλ‘ μ¬μ©νλ€.
ν΄λΌμ΄μΈνΈμ μν¬λ¦Ώμ 보λ΄λ©΄ azure adκ° access tokenμ λ°κΈν΄μ€λ€.
ꡬ쑰
azure adμ κΈ°μ‘΄μ resource-apiλΌλ apiμ±μ΄ μλ€κ³ νμ.
postmanμΌλ‘ μ΄κ²μ ν μ€νΈν΄λ³΄κ³ μΆλ€.
postmanλ code flowλ₯Ό μ§μνλ μ¬κΈ°μλ client credential flowλ₯Ό μ¬μ©νλ€.
client λ§λ€κΈ°
azure adμμ appμ νλ λ μΆκ°νλ€.
μ΄λ¦μ mycliλ‘ νμ.

λ§λ€κ³ λλ©΄ λ€μμ²λΌ 보μΈλ€.
mycli μ€μ
μ΄μ μ€μ μ νμ.
μΌλ¨ μ΄ μ 보λ₯Ό μ μ μ΄λμ.

endpointλ ν΄λ¦νκ³ λλ©΄ λ€μ μ£Όμλ₯Ό 볡μ¬ν΄λλ€.

token end pointλ₯Ό μ 볡μ¬ν΄λλ€.
μ΄μ client secretλ₯Ό λ°κΈνμ.

μ΄μ λ°κΈκΉμ§ λ¬λ€.
μ΄μ Api permissionμ μ€μ ν΄μΌνλλ° μ¬κΈ°μμλ μ¬μ©νκ³ μΆμ apiμμ κΆνμ μ€νμ ν΄μ€μΌνλ€.
api μ±μ κ°μ λ€μμ²λΌ κΆνμ λ§λ€μ΄μ€λ€.
api appμ role μΆκ°

api μ±μμ app rolesλ₯Ό μΆκ°ν΄μ€λ€.

μ΄λ κ² νκ³ μΆκ°νλ©΄ λ‘€μ΄ μΆκ°λλ€.
mycli μ±μμ λ°©κΈ μΆκ°ν λ‘€μ μ¬μ©
μ΄μ roleμ μ¬μ©ν΄λ³΄μ.
Api permissionμ μ€μ νμ.


μ€μ νκ³ λλ©΄ adminμ κΆνμ νμλ‘ νλ κ²½μ°κ° μλ€ μ΄κ±΄ adminμκ² μ°λ½νμ¬ νκ°λ₯Ό ν΄λ¬λΌκ³ ν΄μΌνλ€.
νκ°κ° λκ³ λλ©΄ ν¬μ€νΈλ§¨μμ ν μ€νΈλ₯Ό ν΄λ³΄μ.
ν
μ€νΈ

κ·Έλ¦Όμ²λΌ μ€μ νκ³ μμ²μ λ 리면 access tokenμ λ°μμ¨λ€.
token endpointμ£Όμλ₯Ό μ¬μ© νλ€.
grant_typeμ client_credentialμ΄λ€.
client_idλ mycliμ client idλ₯Ό μ¬μ©νλ€.
μ€μ) scopeλ μ¬μ©νκ³ μ νλ apiμ ν΄λΉνλ scopeλ₯Ό μ¬μ©νλ€.

apiμ κ°μ μ΄ μ 보λ₯Ό κ°μ Έμμ μ¬μ©νλ€. κ·Έλ¦¬κ³ κ·Έ λ€μ /.default
λ₯Ό λΆμ¬μΌνλ€.
api://xxxxxxxx/.default
μ΄λ° ννμ΄λ€.

μ΄μ μ΄ μμΈμ€ ν ν°μ μ¬μ©νμ¬ apiλ₯Ό νΈμΆν΄λ³΄μ.

ν ν°μ 볡μ¬ν΄μ μ¬κΈ°μ λ£κ³ sendλ₯Ό νλ©΄ κ²°κ³Όλ₯Ό κ°μ Έμ¨λ€.
μ΄μ μλ£
μ΄μ μλ£ λμλ€. λ€μμλ cli νλ‘κ·Έλ¨μ λ§λ€μ΄μ μ΄λ»κ² μ λ΄μ©μ μ΄λ»κ² νλμ§ μμ보μ.
λ€μ λ¨κ³
https://teamsmiley.gitbook.io/devops/go-lang/cli-azuread
μ΄κ±Έ μ½μ΄λ³΄μ.
Last updated
Was this helpful?