Microsoft originally announced that Teams would gain a new file sharing experience in Office 365 notification MC218732 on 16 July 2020 (Microsoft 365 roadmap item 51230). As is sometimes the case, the roll-out was delayed:
Update (September 3): Microsoft report that they have paused the roll-out of the feature to make some additional code changes. They will issue a further update when the roll-out resumes.
Update (February 18): Microsoft is ready to restart the roll-out in mid-March with the goal of completing it by mid-April.
Referring to the update as a new file sharing experience is a stretch. What’s really happening is that Teams is adopting the common file sharing dialog that’s already used in OneDrive for Business, SharePoint Online, and OWA. It’s part of an effort to achieve consistency in sharing behavior across Office 365 announced at the Microsoft Ignite 2019 conference.
In other words, Teams now generates a sharing link when users share files. The sharing link defines who can access the file and what level of access they have to the file (read-only or edit). Teams respects the SharePoint sharing policy for the organization, which dictates the range of sharing links that can be used in an Office 365 tenant. Settings for individual sites can downgrade sharing to a more restrictive level.
Sharing in a Channel
Sharing files in Teams differs between channel conversations and personal chats. When a team member uploads a file to a channel, all team members automatically have access to the file, which is stored in the folder for the channel in the team’s SharePoint document library. There’s usually no need to edit the permissions on a file shared within a channel. You can use a private channel if you want to restrict access to a specific subset of team members and upload the files to that channel.
Alternatively, you can apply a sensitivity label with encryption to confidential information to restrict access to people with the right to view the content. This is sometimes done to restrict access to specific information to the tenant members of a team where guest members are present. Remember that even though guests won’t be able to access the content of protected documents, they’ll be able to see document metadata such as titles.
Sharing in a Chat
When a chat participant uploads a file, the file is stored in the Microsoft Teams Chat Files folder in their OneDrive for Business account and view-only access is granted to the chat participants. People who join the chat later aren’t included in the sharing link and you need to add them to the list of people with permissions (Figure 1).
Figure 1: Sharing a file in a Teams chat
It’s easy to open the file in OneDrive for Business and amend its sharing permissions to add new chat participants (Figure 2).
Figure 2: Editing access for a shared file
However, if you know that multiple people will join a chat in the future and you want them to have access to the files shared in the chat, you can amend the sharing link before posting the file. In Figure 3 we see that the link chosen allows access to everyone in the tenant. This might be appropriate in some situations, but most commonly you’ll probably want to add specific people to the link, especially if some guest users or federated users in other tenants are included in the chat.
Figure 3: Editing the sharing link for a file in a Teams chat
Sorry – No Access
When Teams uploads a file to a chat, it evaluates if the participants will be able to access the file in OneDrive for Business. It’s unlikely that you will see this when sharing files in chats with other tenant users, but it can happen when chatting with people from other tenants. To solve the problem, edit the sharing link for the file to ensure that the person has access before completing the upload (or adjust sharing in OneDrive for Business afterwards).
Figure 4: Teams detects that a chat participant won’t be able to access a shared file
When sharing a file in a personal chat, you’ll be reminded that people who join the chat afterwards will need permission to access shared files. You will need to select each file and update the sharing link to add the new chat participant (this can also be done in OneDrive for Business).
Federated Sharing
I’ve also seen some reports that the attach file icon is not shown in some chats, usually those with federated users in other Office 365 tenants. If this happens, try opening the chat in a separate window as the icon seems to be available on a consistent basis there. Because Teams now uses the Office 365 sharing model, if you share a document in a chat with a federated user, Teams creates a new Azure AD guest account for that person, which is then used to access the document. A bug appears to stop the new guest account opening the document from Teams, but if they copy the link it will work in SharePoint Online. Chasing down bugs is common when new mechanisms are introduced, and I am sure that Microsoft will fix this problem soon.
Consistency Across Microsoft 365
Support for sharing links inside Teams means that Microsoft 365 now has a consistent approach to file sharing across its major apps. Like OWA, Teams adjusts the sharing model to meet its needs, but it’s still the same mechanism underneath.
Need to know more about how Office 365 sharing works? It’s all explained in chapter 8 of the Office 365 for IT Pros eBook.
Sharing from the SPO site connected to a private channel works. It’s just like sharing from any other site. The sharing capability assigned to the site dictates whom you can share files with.
{"id":null,"mode":"button","open_style":"in_modal","currency_code":"EUR","currency_symbol":"\u20ac","currency_type":"decimal","blank_flag_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":100,"top_media_type":"featured_image","featured_image_url":"https:\/\/office365itpros.com\/wp-content\/uploads\/2022\/11\/cover-141x200.jpg","featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":true,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Virtual Tip Jar","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"Office 365 for IT Pros","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"Office 365 for IT Pros","form_subtitle":null,"currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thank you for supporting the work of Office 365 for IT Pros!","payment_confirmation_title":"Office 365 for IT Pros","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much would you like to tip?","initial":{"instruction_type":"normal","instruction_message":"How much would you like to tip? Choose any currency."},"empty":{"instruction_type":"error","instruction_message":"How much would you like to tip? Choose any currency."},"invalid_curency":{"instruction_type":"error","instruction_message":"Please choose a valid currency."}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"How often would you like to give this?"},"success":{"instruction_type":"success","instruction_message":"How often would you like to give this?"},"empty":{"instruction_type":"error","instruction_message":"How often would you like to give this?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}
What about sharing a file from a private channel?
Sharing from the SPO site connected to a private channel works. It’s just like sharing from any other site. The sharing capability assigned to the site dictates whom you can share files with.
Thanks again for re-sharing this with is 😀