Делите путем


Коришћење OAuth 2.0 тока имплицитног одобрења у оквиру вашег портала

Напомена

Од 12. октобра 2022. Power Apps портали постају Power Pages. Више информација: Услуга Microsoft Power Pages је сада општедоступна (блог)
Ускоро ћемо мигрирати и објединити документацију о Power Apps порталима са документацијом о услузи Power Pages.

Ова функција омогућава клијенту да упућујете позиве на страни клијента спољним API-јима и да их обезбеди коришћењем OAuth тока имплицитног одобрења. Она обезбеђује крајњу тачку за добијање токена за безбедан приступ. Ти токени ће садржати садржати информације о идентитету корисника које ће користити спољни API-ји за ауторизацију пратећи OAuth 2.0 ток имплицитног одобрења. Информације о идентитету пријављеног корисника прослеђују се на безбедан начин спољним AJAX позивима, што помаже програмерима да прођу контекст потврде идентитета, а такође ће помоћи корисницима да обезбеде своје API-је.

OAuth 2.0 ток имплицитног одобрења подржава крајње тачке токена које клијент може да позива како би добио ID токена.

Прилагођени цертификати

Коришћење подразумеваног цертификата за OAuth 2.0 ток имплицитног одобрења је застарео. Мораћете да користите прилагођени цертификат док користите OAuth 2.0 крајњу тачку. Користите Power Platform центар за администрацију да бисте отпремили прилагођени цертификат. Када отпремите прилагођени цертификат, потребно је да ажурирате поставке локације као у наставку:

  1. Идите на поставке портала и изаберите Поставке локације.

  2. Да бисте креирали нову поставку, изаберите Ново.

  3. Да бисте уредили постојеће подешавање, изаберите поставку локације наведену у мрежи.

  4. Наведите вредности:

    • Назив: CustomCertificates/ImplicitGrantflow
    • Веб-локација: Повезана веб-локација
    • Вредност: Копирајте отисак отпремљеног прилагођеног цертификата са екрана „Управљање прилагођеним цертификатом“ и налепите га овде. Вредност ће назначити који цертификат ће се користити за ток имплицитног одобрења.
  5. Изаберите Сачувај и затвори. Општи мени за поставке нове локације са наведеним вредностима.

Детаљи токена крајње тачке

Можете и да преузмете токен слањем захтева крајњој тачки за /token. URL адреса крајње тачке токена је: <portal_url>/_services/auth/token. Крајња тачка токена подржава следеће параметре:

Параметар Захтевано? Опис
client_id Не Ниска која је прослеђена приликом обављања позива до крајње тачке са одобрењем. Морате да се уверите да је ID клијента регистрован на порталу. У супротном, биће приказана грешка. ID клијента се додаје у захтеве у токену као параметар aud и appid и могу га користити клијенти за проверу ваљаности токена који се враћа за њихове апликације.
Максимална дужина је 36 знакова. Подржани су само алфанумерички и знакови и цртица.
redirect_uri Не URL адреса портала где одговара потврда идентитета може да се шаље и прима. Она мора бити регистрована за одређени client_id коришћен у позиву и требало би да буде потпуно иста вредност као регистрована вредност.
статус Не Вредност обухваћена у захтеву који се враћа и у одговору токена. То може да буде ниска било ког садржаја који желите да користите. Обично, насумично генерисана јединствена вредност се користи за спречавање напада фалсификовања унакрсних захтева између локација.
Максимална дужина је 20 знакова.
једнократни кључ Не Вредност ниске коју је послао клијент која је укључена добијени ID токен као захтев. Клијент затим може да провери ову вредност како би ублажио ризике понављања токена. Максимална дужина је 20 знакова.
response_type Не Тај параметар подржава само token као вредност, омогућавајући вашој апликацији да одмах прима токен за приступ од крајње тачке са одобрењем, без слања другог захтева крајњој тачки са одобрењем.

Напомена

Иако су client_id, redirect_uri, state и nonce параметри су опциони, препоручујемо да их користите како бисте се уверили да је ваша интеграција безбедна.

Успешан одговор

Крајња тачка токена враћа статус и параметар expires_in као заглавља одговора, а токен у телу обрасца.

Погрешан одговор

Грешка у крајњој тачки токена се враћа као JSON документ са следећим вредностима:

  • ID грешке: Јединствени идентификатор грешке.
  • Порука о грешци:Одређена порука о грешци која вам може помоћи да идентификујете основни узрок грешке потврде идентитета.
  • ID корелације: GUID који се користи у сврхе отклањања грешака. Ако сте омогућили дијагностичко евидентирање, ID корелације ће бити присутан у евиденцији грешака сервера.
  • Временска ознака: Датум и време када је грешка генерисана.

Порука о грешци је приказана на подразумеваном језику пријављеног корисника. Ако корисник није пријављен, страница за пријављивање се приказује кориснику како би се пријавио. На пример, одговор са грешком изгледа следеће:

{"ErrorId": "PortalSTS0001", "ErrorMessage": "Client Id provided in the request is not a valid client Id registered for this portal. Please check the parameter and try again.", "Timestamp": "4/5/2019 10:02:11 AM", "CorrelationId": "7464eb01-71ab-44bc-93a1-f221479be847" }

Детаљи о крајњој тачки са одобрењем

Напомена

Крајња тачка са одобрењем је застарела. Користите POST захтев крајње тачке токена да бисте добили ID токен.]

URL адреса за крајњу тачку са одобрењем је: <portal_url>/_services/auth/authorize. Крајња тачка са одобрењем подржава следеће параметре:

Параметар Захтевано? Опис
client_id Да Ниска која је прослеђена приликом обављања позива до крајње тачке са одобрењем. Морате да се уверите да је ID клијента регистрован на порталу. У супротном, биће приказана грешка. ID клијента се додаје у захтеве у токену као параметар aud и appid и могу га користити клијенти за проверу ваљаности токена који се враћа за њихове апликације.
Максимална дужина је 36 знакова. Подржани су само алфанумерички знакови и цртице.
redirect_uri Да URL адреса портала где одговара потврда идентитета може да се шаље и прима. Она мора бити регистрована за одређени client_id коришћен у позиву и требало би да буде потпуно иста вредност као регистрована вредност.
статус Не Вредност обухваћена у захтеву који се враћа и у одговору токена. То може да буде ниска било ког садржаја који желите да користите. Обично, насумично генерисана јединствена вредност се користи за спречавање напада фалсификовања унакрсних захтева између локација.
Максимална дужина је 20 знакова.
једнократни кључ Не Вредност ниске коју је послао клијент која је укључена добијени ID токен као захтев. Клијент затим може да провери ову вредност како би ублажио ризике понављања токена. Максимална дужина је 20 знакова.
response_type Не Тај параметар подржава само token као вредност, што омогућава вашој апликацији да одмах прима токен за приступ од крајње тачке са одобрењем, без слања другог захтева крајњој тачки са одобрењем.

Успешан одговор

Крајња тачка са одобрењем враћа следеће вредности у URL адреси одговора као фрагмент:

  • токен: Токен се враћа као JSON веб-токен (JWT) дигитално потписан приватним кључем портала.
  • статус: Ако је параметар статуса укључен у захтеву, иста вредност би требало да се појави у одговору. Апликација би требало да провери да ли су вредности статуса у захтеву и одговору идентични.
  • expires_in: Дужина времена колико је токен за приступ важећи (у секундама).

На пример, успешан одговор изгледа следеће:

GET https://aadb2cplayground.azurewebsites.net/#token=eyJ0eXAiOiJKV1QiLCJhbGciOI1NisIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q&expires_in=3599&state=arbitrary_data_you_sent_earlier

Погрешан одговор

Грешка у крајњој тачки за одобрење се враћа као JSON документ са следећим вредностима:

  • ID грешке: Јединствени идентификатор грешке.
  • Порука о грешци:Одређена порука о грешци која вам може помоћи да идентификујете основни узрок грешке потврде идентитета.
  • ID корелације: GUID који се користи у сврхе отклањања грешака. Ако сте омогућили дијагностичко евидентирање, ID корелације ће бити присутан у евиденцији грешака сервера.
  • Временска ознака: Датум и време када је грешка генерисана.

Порука о грешци је приказана на подразумеваном језику пријављеног корисника. Ако корисник није пријављен, страница за пријављивање се приказује кориснику како би се пријавио. На пример, одговор са грешком изгледа следеће:

{"ErrorId": "PortalSTS0001", "ErrorMessage": "Client Id provided in the request is not a valid client Id registered for this portal. Please check the parameter and try again.", "Timestamp": "4/5/2019 10:02:11 AM", "CorrelationId": "7464eb01-71ab-44bc-93a1-f221479be847" }

Провера ваљаности ID токена

Само добијање ID токена није довољно за потврду идентитета корисника, потребно је и да потврдите ваљаност потписа токена и да верификујете захтеве у токену на основу захтева ваше апликације. Јавна крајња тачка токена обезбеђује јавни кључ портала, који може да се користи за проверу ваљаности потписа токена којег је обезбедио портал. URL адреса јавне крајње тачке токена је: <portal_url>/_services/auth/publickey.

Укључивање или искључивање тока имплицитног одобрења

Подразумевано, ток имплицитног одобрења је омогућен. Ако желите да искључите ток имплицитног одобрења, подесите вредност подешавања локације Connector/ImplicitGrantFlowEnabled на вредност false.

Ако ово подешавање локације није доступно на вашем порталу, морате да креирате ново подешавање локације са одговарајућом вредношћу.

Конфигурисање важења токена

Подразумевано, токен важи 15 минута. Ако желите да промените важење токена, подесите вредност подешавања локације ImplicitGrantFlow/TokenExpirationTime на потребну вредност. Вредност мора бити наведена у секундама. Максимална вредност може да буде 1 час, а минимална вредност мора бити 1 минут. Ако је наведена нетачна вредност (на пример, алфанумерички знакови), користи се подразумевана вредност од 15 минута. Ако наведете вредност која је већа од максималне вредности или је мања од минималне вредности, користе се максимална, то јест минимална вредности, подразумевано.

На пример, да бисте подесили важење токена на 30 минута, подесите вредност подешавања локације ImplicitGrantFlow/TokenExpirationTime на 1800. Да бисте подесили важење токена на 1 час подесите вредност подешавања локације ImplicitGrantFlow/TokenExpirationTime на 3600.

Регистровање ID клијента за ток имплицитног одобрења

Морате регистровати ID клијента на порталу за који је дозвољен овај ток. Да бисте регистровали ID клијента, морате да креирате следећа подешавања локације:

Поставка локације Вредност
ImplicitGrantFlow/RegisteredClientId Важеће вредности ID-а клијента које су дозвољене за овај портал. Вредности морају да буду раздвојене тачком и зарезом и могу да садрже алфанумеричке знакове и цртице. Максимална дужина је 36 знакова.
ImplicitGrantFlow/{ClientId}/RedirectUri Важећи URI идентификатори за преусмерење који су дозвољени за одређени ID клијента. Вредности морају да буду раздвојене тачком и зарезом. Наведена URL адреса мора да буде за важећу веб-страницу портала.

Пробни код

Следећи пример кода можете да користите да бисте започели са коришћењем OAuth 2.0 имплицитног одобрења са API-јима за Power Apps портале.

Користите OAuth токен портала са спољним Web API-јем

Овај пример је пројекат заснован на ASP.NET и користи се за потврђивање ID токена којег су издали Power Apps портали. Комплетан пример можете пронаћи овде: Користите OAuth токен са екстерним Web API-јем.

Пример крајње тачке токена

Овај пример показује како можете користити функцију getAuthenticationToken за прибављање ID токена помоћу крајње тачке токена у Power Apps порталима. Пример можете пронаћи овде: Пример токена крајње тачке.

Напомена

Можете ли нам рећи о својим жељеним поставкама језика у документацији? Испуните кратку анкету. (имајте на уму да је ова анкета на енглеском језику)

Анкета ће трајати око седам минута. Не прикупљају се лични подаци (изјава о приватности).