„Mieter für Mieter-GUID X existiert nicht' für eigenes E-Mail-Konto (ich bin das einzige Mitglied)

WBOY
Freigeben: 2024-02-13 16:20:09
nach vorne
1137 Leute haben es durchsucht

“租户 GUID X 的租户不存在”,对于自己的电子邮件帐户(我是唯一的成员)

php-Editor Yuzai kann bei der Behebung von E-Mail-Kontoproblemen auf die Fehlermeldung „Mandant mit Mandanten-GUID X existiert nicht“ stoßen, insbesondere wenn Sie das einzige Mitglied sind. Diese Fehlermeldung verhindert möglicherweise, dass Sie sich anmelden oder auf Ihr E-Mail-Konto zugreifen können. Für dieses Problem haben wir einige Lösungen, mit denen Sie versuchen können, den Zugriff und die normale Nutzung Ihres E-Mail-Kontos wiederherzustellen. Im Folgenden beschreiben wir einige mögliche Lösungen und Schritte, die Ihnen hoffentlich bei der Lösung Ihres Problems helfen werden.

Inhalt der Frage

Ich möchte die E-Mail für mein persönliches Konto lesen, erhalte jedoch die Meldung „Mieter für Mieter-Guid x existiert nicht“.

  • Ich habe eine Anwendung mit einem einzigen Mandanten auf https://entra.microsoft.com/ erstellt.

  • Dann habe ich ihm die Erlaubnis gegeben, E-Mails zu senden

  • Dann habe ich einen Client-Schlüssel erstellt

  • Dann verwende ich diesen Code, um den Token zu erhalten:

    import(""github.com/azuread/microsoft-authentication-library-for-go/apps/confidential") cred, err := confidential.newcredfromsecret("{secret value}") if err != nil { log.println(err) return } confidentialclient, err := confidential.new("https://login.microsoftonline.com/{tenant id}", "{client id}", cred) if err != nil { log.println(err) return } scopes := []string{"https://graph.microsoft.com/.default"} result, err := confidentialclient.acquiretokensilent(context.todo(), scopes) if err != nil { result, err = confidentialclient.acquiretokenbycredential(context.todo(), scopes) if err != nil { log.println(err) return } }
    Nach dem Login kopieren
  • Mit diesem Code habe ich den Token erfolgreich erhalten

    { "account": { "additionalfields": null }, "idtoken": { "rawtoken": "", "additionalfields": null }, "accesstoken": "{token}", "expireson": "2023-12-13t14:57:09.4905758-05:00", "grantedscopes": [ "https://graph.microsoft.com/.default" ], "declinedscopes": null }
    Nach dem Login kopieren
  • Dann bekomme ich die Benutzer-ID (ich bin der einzige Benutzer):

    req, err := http.newrequest("get", "https://graph.microsoft.com/v1.0/users", nil) if err != nil { log.println(err) return } req.header.add("authorization", "{token}") client := http.client{} resp, err := client.do(req) if err != nil { log.println(err) return } body, err := io.readall(resp.body) if err != nil { log.println(err) return }
    Nach dem Login kopieren
  • Aber wenn ich versuche, die E-Mail zu bekommen:

    req, err := http.newrequest("get", "https://graph.microsoft.com/v1.0/users/{user_id}/messages", nil) if err != nil { log.println(err) return } req.header.add("authorization", "{token}") client := http.client{} resp, err := client.do(req) if err != nil { log.println(err) return } body, err := io.readall(resp.body) if err != nil { log.println(err) return }
    Nach dem Login kopieren

Ich habe:

{ "error": { "code": "OrganizationFromTenantGuidNotFound", "message": "The tenant for tenant guid '0a6ac917-332a-4f47-881e-0b35fb1b2ab5' does not exist.", "innerError": { "oAuthEventOperationId": "c096c5c9-e743-4daa-9a97-d14d915e9842", "oAuthEventcV": "N0nHeUJm9gwnrFZefuEA4w.1.1", "errorUrl": "https://aka.ms/autherrors#error-InvalidTenant", "requestId": "c0272999-9743-44ee-98b5-947acc52e7d8", "date": "2023-12-13T19:11:22" } } }
Nach dem Login kopieren

Die ID des Fehlers0a6ac917-332a-4f47-881e-0b35fb1b2ab5ist die Tenand-ID.0a6ac917-332a-4f47-881e-0b35fb1b2ab5是tenand id

解决方法

要阅读个人outlook 帐户的邮件,需要切换到委托流程(例如交互流程或生成访问令牌的授权码流程)并调用/me/ messages

Problemumgehung

UmMails vompersönlichenOutlook-Konto zu lesen, müssen Sie zu

delegiert

wechseln Prozess (z. B. Interaktionsprozess oder Autorisierungscodeprozess, der ein Zugriffstoken generiert) und ruft den Endpunkt/me/messagesauf.

Registrieren Sie dieMulti-Tenant-App mit dem Kontotyp „Konten in einem beliebigen Organisationsverzeichnis (jeder Microsoft-Entra-ID-Mandant – Multitenant) und persönliche Microsoft-Konten (z. B. Skype, Xbox)

“:

Wenn Sie Interaktionsflüsse zum Generieren von Token verwenden, stellen Sie sicher, dass Sie die OptionÖffentlicher Clientaktivieren:mail.readmail.readwrite

Fügen Sie nun je nach Bedarf einen

Delegaten

vom Typmail.readoder/me/messagesmail.readwritehinzu

Berechtigungen:

Um mithilfe eines Interaktionsflusses ein < /strong>Zugriffstoken

zu generieren, können Sie auf diesen Beispiel-Go-Code verweisen und ihn dann verwenden, um den

Endpunkt aufzurufen:

package public_test import ( "context" "github.com/azuread/microsoft-authentication-library-for-go/apps/public" ) func example() { client, err := public.new("client_id", public.withauthority("https://login.microsoftonline.com/common")) if err != nil { } var result public.authresult scopes := []string{"https://graph.microsoft.com/.default"} accounts, err := client.accounts(context.todo()) if err != nil { // todo: handle error } if len(accounts) > 0 { result, err = client.acquiretokensilent(context.todo(), scopes, public.withsilentaccount(accounts[0])) } if err != nil || len(accounts) == 0 { result, err = client.acquiretokeninteractive(context.todo(), scopes) if err != nil { } } _ = result.account _ = result.accesstoken }
Nach dem Login kopieren
Sie können sich auch mit diesem Konto beim

Graph Explorer

anmelden und die folgende Abfrage ausführen, um E-Mails zu erhalten:

GET https://graph.microsoft.com/v1.0/me/messages
Nach dem Login kopieren
Antwort:

Referenz: Microsoft Authentication-library-for-go/apps/public/example_test.go befindet sich im Hauptverzeichnis · azuread/microsoft-authentication-library-for-go · github

Das obige ist der detaillierte Inhalt von„Mieter für Mieter-GUID X existiert nicht' für eigenes E-Mail-Konto (ich bin das einzige Mitglied). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!