Вы также можете просто создать новый словарь с пониманием словаря. Это позволяет избежать импорта копии.
dout = dict((k,v) for k,v in mydict.items())
Конечно, в python> = 2.7 вы можете сделать:
dout = {k:v for k,v in mydict.items()}
Но для обратной совместимости лучший способ лучше.
Не существует прямого решения для вашего упомянутого сценария с точки зрения протокола OAuth и OpenID Connect.
Но из того, что вы объяснили, у вас есть службы, защищенные токеном доступа OAuth 2.0 в service A
. Кроме того, A
выступает в роли провайдера идентификации (с поддержкой OpenID Connect). Если это так, я считаю, что вы контролируете процесс выдачи токенов и проверки.
Один из вариантов - включить службы из B
, которые защищены от маркеров доступа OAuth 2.0. Что похоже на то, что у вас уже есть в A
. И чтобы использовать эти сервисы, у вас будут некоторые реализации сервис / клиент, связанные с A
. Что они будут делать, так это получить токены из самого A
для связи с B
. Это может следовать предоставлению клиентских учетных данных из OAuth 2.0 , поскольку нет участия конечного пользователя (сценарий включает взаимодействие между сервисами).
Это предлагаемое решение аналогично использованию ключа API, но с дополнительным преимуществом протокола OAuth 2.0. Это позволяет генерировать токены доступа с ограниченным сроком службы и при необходимости обновлять их. Кроме того, если вы хотите, чтобы службы B
использовались другим клиентом, то все будет просто.